<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<HTML LANG="en">
<HEAD PROFILE="http://www.w3.org/2005/10/profile">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
<LINK REL="stylesheet" TYPE="text/css" HREF="../style.css" TITLE="stylesheet">
<STYLE TYPE="text/css">
*.attested, *.attested * {color: black}
*.confirmed, *.confirmed * {color: black}
*.academic, *.academic * {color: navy}
*.third-party, *.third-party * {color: maroon}
*.unconfirmed, *.unconfirmed * {color: red}
</STYLE>
<LINK REL="icon" TYPE="image/vnd.microsoft.icon" HREF="../favicon.ico">
<TITLE>Catalogue of parametrised CRC algorithms</TITLE>
</HEAD>
<BODY>
<P STYLE="float: right;"><A HREF="../"><IMG ALT="CRC RevEng" TITLE="CRC RevEng" SRC="../logo.png" WIDTH="200" HEIGHT="200" STYLE="vertical-align: top;"></A></P>
<H1 CLASS="centred"><A NAME="_top">CRC RevEng</A></H1>
<P CLASS="centred">[ <A HREF="../">Home</A> | <A HREF="./">Up</A> | <A HREF="#crc.cat-summary">Summary</A> | <A HREF="#crc.legend">Legend</A> | <A HREF="#disclaimer">Disclaimer</A> | <A HREF="#appendix.a">Appendices</A> ]</P>

<H2><A NAME="crc">Catalogue of parametrised CRC algorithms</A></H2>

<H3><A NAME="crc.cat-bits.3"></A><A NAME="crc.cat.crc-3-gsm">CRC-3/GSM</A></H3>
<P CLASS="academic"><CODE>width=3  poly=0x3  init=0x0  refin=false  refout=false  xorout=0x7  check=0x4  residue=0x2  name="CRC-3/GSM"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>ETSI <A HREF="https://www.etsi.org/deliver/etsi_ts/100900_100999/100909/08.09.00_60/ts_100909v080900p.pdf">TS 100 909</A> version 8.9.0 (January 2005)
<UL>
<LI><STRONG>I</STRONG> Full mathematical description (Section 3.1.2.1, p.18 &mdash; Section 3.2.1, p.20)</LI>
</UL>
</LI>
<LI>Created: 17 February 2017</LI>
</UL>

<H3><A NAME="crc.cat.crc-3-rohc">CRC-3/ROHC</A></H3>
<P CLASS="academic"><CODE>width=3  poly=0x3  init=0x7  refin=true  refout=true  xorout=0x0  check=0x6  residue=0x0  name="CRC-3/ROHC"</CODE></P>
<UL>
<LI>Class: <SPAN class="academic">academic</SPAN></LI>
<LI><A HREF="https://tools.ietf.org/html/rfc3095">IETF RFC 3095</A> (July 2001)
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init (Section 5.9.2, pp.125&ndash;6)</LI>
</UL>
</LI>
<LI>Andreas Vernersson <DFN>et al.</DFN> (26 May 2003), <A HREF="http://rohc.sourceforge.net/">rohc 1.0</A> module <CODE>rohc-1.0/rohc/src/c_util.c</CODE>
<UL>
<LI><STRONG>III</STRONG> Code: C</LI>
</UL>
</LI>
<LI>Created: 14 December 2009</LI>
<LI>Updated: 6 February 2017</LI>
</UL>

<H3><A NAME="crc.cat-bits.4"></A><A NAME="crc.cat.crc-4-g-704">CRC-4/G-704</A></H3>
<P CLASS="academic"><CODE>width=4  poly=0x3  init=0x0  refin=true  refout=true  xorout=0x0  check=0x7  residue=0x0  name="CRC-4/G-704"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-4-itu"><STRONG>CRC-4/ITU</STRONG></A></LI>
<LI><A HREF="https://www.itu.int/rec/T-REC-G.704/en">ITU-T Recommendation G.704</A> (October 1998)
<UL>
<LI><STRONG>I</STRONG> Full mathematical description (Section 2.3.3.5, p.12)</LI>
<LI><STRONG>I</STRONG> Shift register diagram (Annex A.3, p.36)</LI>
</UL>
</LI>
<LI>Created: 7 October 2008</LI>
<LI>Updated: 21 November 2018</LI>
</UL>

<H3><A NAME="crc.cat.crc-4-interlaken">CRC-4/INTERLAKEN</A></H3>
<P CLASS="academic"><CODE>width=4  poly=0x3  init=0xf  refin=false  refout=false  xorout=0xf  check=0xb  residue=0x2  name="CRC-4/INTERLAKEN"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>Reference from named polynomial in Prof. Koopman's <A HREF="https://users.ece.cmu.edu/~koopman/crc/notes.html">CRC Polynomial Zoo</A>.</LI>
<LI>The Interlaken Alliance (7 October 2008), <A HREF="http://interlakenalliance.com/wp-content/uploads/2019/12/Interlaken_Protocol_Definition_v1.2.pdf">Interlaken Protocol Definition</A>, version 1.2
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly (Section 5.3.4.2, p.23)</LI>
<LI><STRONG>I</STRONG> Definition: Init, RefIn, RefOut, XorOut (Appendix B, p.48)</LI>
</UL>
</LI>
<LI>Created: 10 February 2016</LI>
<LI>Updated: 28 December 2019</LI>
</UL>

<H3><A NAME="crc.cat-bits.5"></A><A NAME="crc.cat.crc-5-epc-c1g2">CRC-5/EPC-C1G2</A></H3>
<P CLASS="attested"><CODE>width=5  poly=0x09  init=0x09  refin=false  refout=false  xorout=0x00  check=0x00  residue=0x00  name="CRC-5/EPC-C1G2"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-5-epc"><STRONG>CRC-5/EPC</STRONG></A></LI>
<LI>Used in standardised RFID tags.</LI>
<LI>EPCglobal Inc&trade; (4 September 2018), <A HREF="https://www.gs1.org/standards/epc-rfid/uhf-air-interface-protocol">EPC UHF Gen2 Air Interface Protocol</A>: <A HREF="https://www.gs1.org/sites/default/files/docs/epc/gs1-epc-gen2v2-uhf-airinterface_i21_r_2018-09-04.pdf">EPC&trade; Radio-Frequency Identity Protocols Generation-2 UHF RFID Standard</A>, release 2.1
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init, Residue (Table 6-12, p.34)</LI>
<LI><STRONG>I</STRONG> Definition: RefIn, Residue (Annex F.1, p.143)</LI>
<LI><STRONG>I</STRONG> Shift register circuit diagram (Figure F-1, p.143)</LI>
<LI><STRONG>I</STRONG> Transmission order, implying RefIn and RefOut (Section 6.3.1.4, p.33)</LI>
</UL>
</LI>
<LI>Hee-Bok Kang <DFN>et al.</DFN> (December 2008), <!-- A HREF="https://onlinelibrary.wiley.com/doi/10.4218/etrij.08.0108.0338" --><A HREF="https://onlinelibrary.wiley.com/doi/pdf/10.4218/etrij.08.0108.0338">High Security FeRAM-Based EPC C1G2 UHF (860 MHz-960 MHz) Passive RFID Tag Chip</A>, ETRI Journal, Volume 30 Number 6
<UL>
<LI><STRONG>IV</STRONG> 1 codeword (p.830)
<UL>
<LI><CODE>10001001&#8203;00000010&#8203;000110</CODE></LI>
</UL>
</LI>
</UL>
<LI>"jgmh" (20 May 2009), Computer Interfacing Forum <A HREF="https://web.archive.org/web/20181116142620/https://www.lammertbies.nl/forum/viewtopic.php?t=1330">topic 1330</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>IV</STRONG> 1 codeword
<UL>
<LI><CODE>10000001&#8203;00000000&#8203;010011</CODE></LI>
</UL>
</LI>
</UL>
<LI>Created: 20 May 2009</LI>
<LI>Updated: 28 December 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-5-g-704">CRC-5/G-704</A></H3>
<P CLASS="academic"><CODE>width=5  poly=0x15  init=0x00  refin=true  refout=true  xorout=0x00  check=0x07  residue=0x00  name="CRC-5/G-704"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-5-itu"><STRONG>CRC-5/ITU</STRONG></A></LI>
<LI><A HREF="https://www.itu.int/rec/T-REC-G.704/en">ITU-T Recommendation G.704</A> (October 1998)
<UL>
<LI><STRONG>I</STRONG> Definition: Residue; full mathematical description (Section 2.2.3.2, pp.8&ndash;9)</LI>
<LI><STRONG>I</STRONG> Shift register diagram (Annex A.2, p.36)</LI>
</UL>
</LI>
<LI>Created: 7 October 2008</LI>
<LI>Updated: 21 November 2018</LI>
</UL>

<H3><A NAME="crc.cat.crc-5-usb">CRC-5/USB</A></H3>
<P CLASS="third-party"><CODE>width=5  poly=0x05  init=0x1f  refin=true  refout=true  xorout=0x1f  check=0x19  residue=0x06  name="CRC-5/USB"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="third-party">third-party</SPAN></LI>
<LI>Anonymous (10 July 1997), <A HREF="https://web.archive.org/web/20160326215031/http://www.usb.org/developers/whitepapers/crcdes.pdf">"Cyclic Redundancy Checks in USB"</A> (Draft) (courtesy of the Internet Archive)
<UL>
<LI><STRONG>III</STRONG> Definition: Width, Poly, Init, XorOut (p.2)</LI>
<LI><STRONG>III</STRONG> Definition: Residue (p.3)</LI>
<LI><STRONG>III</STRONG> Code: Perl (pp.3&ndash;4)</LI>
<LI><STRONG>IV</STRONG> 4 codewords (p.5)
<UL>
<LI><CODE>10101000&#8203;11110111</CODE></LI>
<LI><CODE>01011100&#8203;10111100</CODE></LI>
<LI><CODE>00001110&#8203;01001110</CODE></LI>
<LI><CODE>10000000&#8203;00010111</CODE></LI>
</UL>
</LI>
</UL>
<LI>Created: 1 December 2007</LI>
<LI>Updated: 6 February 2017</LI>
</UL>

<H3><A NAME="crc.cat-bits.6"></A><A NAME="crc.cat.crc-6-cdma2000-a">CRC-6/CDMA2000-A</A></H3>
<P CLASS="attested"><CODE>width=6  poly=0x27  init=0x3f  refin=false  refout=false  xorout=0x00  check=0x0d  residue=0x00  name="CRC-6/CDMA2000-A"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>3rd Generation Partnership Project 2 (3GPP2) (September 2009), <A HREF="https://3gpp2.org/Public_html/Specs/C.S0002-E_v1.0_cdma200_1x_PHY-090925.pdf">Physical layer standard for cdma2000 spread spectrum systems</A>, revision E, version 1.0
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly (Section 2.1.3.1.4.1.5, p.2-97)</LI>
<LI><STRONG>I</STRONG> Full description (Section 2.1.3.1.4.1, p.2-95)</LI>
<LI><STRONG>I</STRONG> Shift register diagram (Figure 2.1.3.1.4.1.5-1, p.2-97)</LI>
</UL>
</LI>
<LI>Agilent Technologies, Advanced Design System 2008 Update 2, <A HREF="https://web.archive.org/web/20170130200459/http://cp.literature.agilent.com/litweb/pdf/ads2008/cdma2k/ads2008/CDMA2K_CRC_Coder.html"><CODE>CDMA2K_CRC_Coder</CODE> module documentation</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>III</STRONG> Full description</LI>
</UL>
</LI>
<LI>J. Hurley, Avtec Inc. (6 May 2011), Computer Interfacing Forum <A HREF="https://web.archive.org/web/20181116144643/https://www.lammertbies.nl/forum/viewtopic.php?t=1702">topic 1702</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>IV</STRONG> 3 codewords
<UL>
<LI><CODE>C101002E</CODE></LI>
<LI><CODE>0110000F</CODE></LI>
<LI><CODE>05100009</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI><SAMP>reveng -m CRC-6/CDMA2000-A -a 1 -A 6 -X -c 11000001&#8203;00000001&#8203;00000000&#8203;00 00000001&#8203;00010000&#8203;00000000&#8203;00 00000101&#8203;00010000&#8203;00000000&#8203;00</SAMP> &rarr; <CODE>2E 0F 09</CODE></LI>
<LI>Created: 14 October 2013</LI>
<LI>Updated: 28 December 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-6-cdma2000-b">CRC-6/CDMA2000-B</A></H3>
<P CLASS="academic"><CODE>width=6  poly=0x07  init=0x3f  refin=false  refout=false  xorout=0x00  check=0x3b  residue=0x00  name="CRC-6/CDMA2000-B"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>3rd Generation Partnership Project 2 (3GPP2) (September 2009), <A HREF="https://3gpp2.org/Public_html/Specs/C.S0002-E_v1.0_cdma200_1x_PHY-090925.pdf">Physical layer standard for cdma2000 spread spectrum systems</A>, revision E, version 1.0
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly (Section 2.1.3.1.4.1.6, pp.2-97&ndash;8)</LI>
<LI><STRONG>I</STRONG> Full description (Section 2.1.3.1.4.1, p.2-95)</LI>
<LI><STRONG>I</STRONG> Shift register diagram (Figure 2.1.3.1.4.1.6-1, p.2-98)</LI>
</UL>
</LI>
<LI>Agilent Technologies, Advanced Design System 2008 Update 2, <A HREF="https://web.archive.org/web/20170130200459/http://cp.literature.agilent.com/litweb/pdf/ads2008/cdma2k/ads2008/CDMA2K_CRC_Coder.html"><CODE>CDMA2K_CRC_Coder</CODE> module documentation</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>III</STRONG> Full description</LI>
</UL>
</LI>
<LI>Created: 14 October 2013</LI>
<LI>Updated: 28 December 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-6-darc">CRC-6/DARC</A></H3>
<P CLASS="attested"><CODE>width=6  poly=0x19  init=0x00  refin=true  refout=true  xorout=0x00  check=0x26  residue=0x00  name="CRC-6/DARC"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>ETSI <A HREF="https://www.etsi.org/deliver/etsi_en/300700_300799/300751/01.02.01_60/en_300751v010201p.pdf">EN 300 751</A> version 1.2.1 (January 2003)
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly (Section 11.2, pp.67&ndash;8)</LI>
<LI><STRONG>I</STRONG> Definition: RefIn, RefOut (Section 12, pp.69&ndash;70)</LI>
<LI><STRONG>IV</STRONG> 3 codewords (Section 11.2, pp.67&ndash;8)
<UL>
<LI><CODE>10010100&#8203;11000100</CODE></LI>
<LI><CODE>01010011&#8203;00011101</CODE></LI>
<LI><CODE>00001100&#8203;01000000&#8203;00100000&#8203;00101101</CODE></LI>
</UL>
</LI>
<LI>See section 12 for details of the transmission order.</LI>
</UL>
<LI><SAMP>reveng -m CRC-6/DARC -X -c 2923 CAB8 300204B4</SAMP> &rarr; <CODE>00 00 00</CODE></LI>
<LI><SAMP>reveng -m CRC-6/DARC -a 1 -A 8 -r -X -c 10010100&#8203;11 01010011&#8203;00 00001100&#8203;01000000&#8203;00100000&#8203;00</SAMP> &rarr; <CODE>20 B8 B4</CODE></LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 14 December 2009</LI>
<LI>Updated: 20 November 2018</LI>
</UL>

<H3><A NAME="crc.cat.crc-6-g-704">CRC-6/G-704</A></H3>
<P CLASS="academic"><CODE>width=6  poly=0x03  init=0x00  refin=true  refout=true  xorout=0x00  check=0x06  residue=0x00  name="CRC-6/G-704"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-6-itu"><STRONG>CRC-6/ITU</STRONG></A></LI>
<LI><A HREF="https://www.itu.int/rec/T-REC-G.704/en">ITU-T Recommendation G.704</A> (October 1998)
<UL>
<LI><STRONG>I</STRONG> Full mathematical description (Section 2.1.3.1.2, p.3)</LI>
<LI><STRONG>I</STRONG> Shift register diagram (Annex A.1, p.35)</LI>
</UL>
</LI>
<LI>Created: 7 October 2008</LI>
<LI>Updated: 21 November 2018</LI>
</UL>

<H3><A NAME="crc.cat.crc-6-gsm">CRC-6/GSM</A></H3>
<P CLASS="academic"><CODE>width=6  poly=0x2f  init=0x00  refin=false  refout=false  xorout=0x3f  check=0x13  residue=0x3a  name="CRC-6/GSM"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>ETSI <A HREF="https://www.etsi.org/deliver/etsi_ts/100900_100999/100909/08.09.00_60/ts_100909v080900p.pdf">TS 100 909</A> version 8.9.0 (January 2005)
<UL>
<LI><STRONG>I</STRONG> Full mathematical description (Section 3.9.4.3, pp.31&ndash;3 &mdash; Section 3.10.7.3, pp.47&ndash;9 &mdash; Section 4.6, p.64 &mdash; Section 5.3.2, p.95)</LI>
</UL>
</LI>
<LI>Created: 17 February 2017</LI>
</UL>

<H3><A NAME="crc.cat-bits.7"></A><A NAME="crc.cat.crc-7-mmc">CRC-7/MMC</A></H3>
<P CLASS="academic"><CODE>width=7  poly=0x09  init=0x00  refin=false  refout=false  xorout=0x00  check=0x75  residue=0x00  name="CRC-7/MMC"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-7"><STRONG>CRC-7</STRONG></A></LI>
<LI>Used in the MultiMediaCard interface.</LI>
<LI>Additional reference courtesy of Greg Nelson, Grammatech Inc.</LI>
<LI>JEDEC Standard <A HREF="https://www.jedec.org/sites/default/files/docs/JESD84-A441_0.pdf">JESD84-A441</A> (March 2010) (registration required)
<UL>
<LI><STRONG>I</STRONG> Full definition (Section 10.2, pp.157&ndash;8)</LI>
<LI><STRONG>I</STRONG> Shift register diagram (Figure 53, p.158)</LI>
</UL>
</LI>
<LI><A HREF="https://github.com/torvalds/linux/blob/master/CREDITS">Linux contributors</A> (14 January 2021), Linux module <A HREF="https://stuff.mit.edu/afs/sipb/contrib/linux/lib/crc7.c"><CODE>lib/crc7.c</CODE></A><!-- https://github.com/torvalds/linux/blob/master/lib/crc7.c -->
<UL>
<LI><STRONG>III</STRONG> Code: C</LI>
</UL>
</LI>
<LI>Nokia Corporation (2008), Linux module <A HREF="https://stuff.mit.edu/afs/sipb/contrib/linux/drivers/net/wireless/ti/wl1251/spi.c"><CODE>drivers/net/wireless/ti/wl1251/spi.c</CODE></A><!-- https://elixir.bootlin.com/linux/v5.16/source/drivers/net/wireless/ti/wl1251/spi.c -->
<UL>
<LI><STRONG>III</STRONG> Definition: Init (l.104)</LI>
</UL>
</LI>
<LI>Created: 7 October 2008</LI>
<LI>Updated: 11 January 2022</LI>
</UL>

<H3><A NAME="crc.cat.crc-7-rohc">CRC-7/ROHC</A></H3>
<P CLASS="academic"><CODE>width=7  poly=0x4f  init=0x7f  refin=true  refout=true  xorout=0x00  check=0x53  residue=0x00  name="CRC-7/ROHC"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI><A HREF="https://tools.ietf.org/html/rfc3095">IETF RFC 3095</A> (July 2001)
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init (Section 5.9.2, pp.125&ndash;6)</LI>
</UL>
</LI>
<LI>Andreas Vernersson <DFN>et al.</DFN> (26 May 2003), <A HREF="http://rohc.sourceforge.net/">rohc 1.0</A> module <CODE>rohc-1.0/rohc/src/c_util.c</CODE>
<UL>
<LI><STRONG>III</STRONG> Code: C</LI>
</UL>
</LI>
<LI>Created: 14 December 2009</LI>
<LI>Updated: 6 February 2017</LI>
</UL>

<H3><A NAME="crc.cat.crc-7-umts">CRC-7/UMTS</A></H3>
<P CLASS="academic"><CODE>width=7  poly=0x45  init=0x00  refin=false  refout=false  xorout=0x00  check=0x61  residue=0x00  name="CRC-7/UMTS"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>Reference from named polynomial in Prof. Koopman's <A HREF="https://users.ece.cmu.edu/~koopman/crc/notes.html">CRC Polynomial Zoo</A>.</LI>
<LI>3rd Generation Partnership Project (3GPP) <A HREF="https://www.3gpp.org/ftp/Specs/2017-03/Rel-14/25_series/25427-e00.zip">TS 25.427</A> version 14.0.0 (March 2017) (zipped MS Word document) &mdash; ETSI <A HREF="https://www.etsi.org/deliver/etsi_ts/125400_125499/125427/14.00.00_60/ts_125427v140000p.pdf">TS 125 427</A> version 14.0.0 (April 2017)
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init, XorOut (Section 7.2.1, p.40)</LI>
<LI><STRONG>I</STRONG> Definition: RefIn, RefOut (Section 6.1.1, p.20; Section 7.2.1.1, pp.40&ndash;1)</LI>
</UL>
</LI>
<LI>Created: 8 February 2016</LI>
<LI>Updated: 25 March 2019</LI>
</UL>

<H3><A NAME="crc.cat-bits.8"></A><A NAME="crc.cat.crc-8-autosar">CRC-8/AUTOSAR</A></H3>
<P CLASS="attested"><CODE>width=8  poly=0x2f  init=0xff  refin=false  refout=false  xorout=0xff  check=0xdf  residue=0x42  name="CRC-8/AUTOSAR"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>AUTOSAR (30 November 2020), <A HREF="https://www.autosar.org/standards/classic-platform/">AUTOSAR Classic Platform</A> release R20-11, <A HREF="https://www.autosar.org/fileadmin/user_upload/standards/classic/20-11/AUTOSAR_SWS_CRCLibrary.pdf">Specification of CRC Routines</A>
<UL>
<LI><STRONG>I</STRONG> Comprehensive primer on CRC theory (Section 7.1, pp.18&ndash;21)</LI>
<LI><STRONG>I</STRONG> All parameters (Section 7.2.1.2, p.24)</LI>
<LI><STRONG>IV</STRONG> 7 codewords (Section 7.2.1.2, p.24)
<UL>
<LI><CODE>00000000&#8203;12</CODE></LI>
<LI><CODE>F20183C2</CODE></LI>
<LI><CODE>0FAA0055&#8203;C6</CODE></LI>
<LI><CODE>00FF5511&#8203;77</CODE></LI>
<LI><CODE>332255AA&#8203;BBCCDDEE&#8203;FF11</CODE></LI>
<LI><CODE>926B5533</CODE></LI>
<LI><CODE>FFFFFFFF&#8203;6C</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 24 July 2016</LI>
<LI>Updated: 2 January 2021</LI>
</UL>

<H3><A NAME="crc.cat.crc-8-bluetooth">CRC-8/BLUETOOTH</A></H3>
<P CLASS="attested"><CODE>width=8  poly=0xa7  init=0x00  refin=true  refout=true  xorout=0x00  check=0x26  residue=0x00  name="CRC-8/BLUETOOTH"</CODE><P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Used in Bluetooth header error correction (HEC).  Init=0x00 is used in the Inquiry Response substate.</LI>
<LI>Bluetooth SIG (31 December 2019), <A HREF="https://www.bluetooth.com/specifications/">Bluetooth Specification</A>, <A HREF="https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=478726">Core Version 5.2</A>
<UL>
<LI><STRONG>I</STRONG> Definition: Init (Section 2.B.1.2.1, p.417)</LI>
<LI><STRONG>I</STRONG> Definition: Width, Poly (Section 2.B.7.1.1, pp.488&ndash;9)</LI>
<LI><STRONG>I</STRONG> Definition: RefIn; shift register diagram (Figure 2.B.7.3, p.489)</LI>
<LI><STRONG>I</STRONG> Definition: Refin, RefOut, Residue (Figure 2.B.7.5, p.489)
<LI><STRONG>IV</STRONG> 10 codewords (Section 2.G.4, p.898)
<UL>
<LI><CODE>11000100&#8203;10100001&#8203;11</CODE></LI>
<LI><CODE>00100100&#8203;10010011&#8203;00</CODE></LI>
<LI><CODE>10100100&#8203;10010110&#8203;10</CODE></LI>
<LI><CODE>01100100&#8203;10010001&#8203;11</CODE></LI>
<LI><CODE>11100100&#8203;10010100&#8203;01</CODE></LI>
<LI><CODE>11011000&#8203;10011110&#8203;01</CODE></LI>
<LI><CODE>00111000&#8203;10101100&#8203;10</CODE></LI>
<LI><CODE>10111000&#8203;10101001&#8203;00</CODE></LI>
<LI><CODE>01111000&#8203;10101110&#8203;01</CODE></LI>
<LI><CODE>11111000&#8203;10101011&#8203;11</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Created: 20 June 2017</LI>
<LI>Updated: 3 January 2021</LI>
</UL>

<H3><A NAME="crc.cat.crc-8-cdma2000">CRC-8/CDMA2000</A></H3>
<P CLASS="academic"><CODE>width=8  poly=0x9b  init=0xff  refin=false  refout=false  xorout=0x00  check=0xda  residue=0x00  name="CRC-8/CDMA2000"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>3rd Generation Partnership Project 2 (3GPP2) (September 2009), <A HREF="https://3gpp2.org/Public_html/Specs/C.S0002-E_v1.0_cdma200_1x_PHY-090925.pdf">Physical layer standard for cdma2000 spread spectrum systems</A>, revision E, version 1.0
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly (Section 2.1.3.1.4.1.4, p.2-96)</LI>
<LI><STRONG>I</STRONG> Full description (Section 2.1.3.1.4.1, p.2-95)</LI>
<LI><STRONG>I</STRONG> Shift register diagram (Figure 2.1.3.1.4.1.4-1, p.2-97)</LI>
</UL>
</LI>
<LI>Agilent Technologies, Advanced Design System 2008 Update 2, <A HREF="https://web.archive.org/web/20170130200459/http://cp.literature.agilent.com/litweb/pdf/ads2008/cdma2k/ads2008/CDMA2K_CRC_Coder.html"><CODE>CDMA2K_CRC_Coder</CODE> module documentation</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>III</STRONG> Full description</LI>
</UL>
</LI>
<LI>Created: 14 October 2013</LI>
<LI>Updated: 28 December 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-8-darc">CRC-8/DARC</A></H3>
<P CLASS="attested"><CODE>width=8  poly=0x39  init=0x00  refin=true  refout=true  xorout=0x00  check=0x15  residue=0x00  name="CRC-8/DARC"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>The single codeword is supported by the codewords confirming <A HREF="#crc.cat.crc-6-darc">CRC-6/DARC</A>, defined identically apart from Poly in the same standard.</LI>
<LI>ETSI <A HREF="https://www.etsi.org/deliver/etsi_en/300700_300799/300751/01.02.01_60/en_300751v010201p.pdf">EN 300 751</A> version 1.2.1 (January 2003)
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly (Section 11.2.3, p.68)</LI>
<LI><STRONG>I</STRONG> Definition: RefIn, RefOut (Section 12, pp.69&ndash;70)</LI>
<LI><STRONG>IV</STRONG> 1 codeword (Section 11.2.3, p.68)
<UL>
<LI><CODE>00000001&#8203;00000011&#8203;11010111</CODE></LI>
</UL>
<LI>See section 12 for details of the transmission order.</LI>
</UL>
<LI>Created: 14 December 2009</LI>
<LI>Updated: 29 November 2018</LI>
</UL>

<H3><A NAME="crc.cat.crc-8-dvb-s2">CRC-8/DVB-S2</A></H3>
<P CLASS="academic"><CODE>width=8  poly=0xd5  init=0x00  refin=false  refout=false  xorout=0x00  check=0xbc  residue=0x00  name="CRC-8/DVB-S2"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>Contributed by Hartmut Brandt, German Aerospace Center.</LI>
<LI>ETSI <A HREF="https://www.etsi.org/deliver/etsi_en/302300_302399/30230701/01.04.01_60/en_30230701v010401p.pdf">EN 302 307-1</A> version 1.4.1 (November 2014)
<UL>
<LI><STRONG>I</STRONG> Full mathematical description (Section 5.1.4, p.18)</LI>
</UL>
<LI>Ethernet POWERLINK Standardisation Group (16 October 2015), <A HREF="https://www.ethernet-powerlink.org/fileadmin/user_upload/Dokumente/Downloads/TECHNICAL_DOCUMENTS/EPSG_WDP_304_V-1-5-0__3_.pdf">OpenSAFETY Safety Profile Specification Working Draft Proposal</A>, version 1.5.0
<UL>
<LI><STRONG>I</STRONG> Code: C (Appendix 1, pp.192&ndash;3)</LI>
<LI><STRONG>IV</STRONG> 1 codeword (Appendix 1, p.193)
<UL>
<LI><CODE>22C81256&#8203;30112233&#8203;44556677&#8203;884F</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Prof. Philip Koopman, Tridib Chakravarty (June 2004), <A HREF="https://users.ece.cmu.edu/~koopman/roses/dsn04/koopman04_crc_poly_embedded.pdf"><CITE>Cyclic Redundancy Code (CRC) Polynomial Selection for Embedded Networks</CITE></A>
<UL>
<LI><STRONG>III</STRONG> Assessment of polynomial performance (as <CODE>0xEA</CODE> or CRC-8)</LI>
</UL>
</LI>
<LI>Created: 10 January 2014</LI>
<LI>Updated: 5 June 2018</LI>
</UL>

<H3><A NAME="crc.cat.crc-8-gsm-a">CRC-8/GSM-A</A></H3>
<P CLASS="academic"><CODE>width=8  poly=0x1d  init=0x00  refin=false  refout=false  xorout=0x00  check=0x37  residue=0x00  name="CRC-8/GSM-A"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>ETSI <A HREF="https://www.etsi.org/deliver/etsi_ts/100900_100999/100909/08.09.00_60/ts_100909v080900p.pdf">TS 100 909</A> version 8.9.0 (January 2005)
<UL>
<LI><STRONG>I</STRONG> Full mathematical description (Section 3.1.1.1, pp.17&ndash;18)</LI>
</UL>
</LI>
<LI>Michael Niedermayer, Aur&eacute;lien Jacobs <DFN>et al.</DFN> (11 July 2020), <A HREF="https://ffmpeg.org/releases/ffmpeg-4.3.1.tar.xz">FFmpeg 4.3.1</A> (XZ compressed tarfile), module <A HREF="https://github.com/FFmpeg/FFmpeg/blob/master/libavutil/tests/crc.c"><CODE>ffmpeg-4.3.1/libavutil/tests/crc.c</CODE></A>
<UL>
<LI><STRONG>IV</STRONG> 1 codeword
<UL>
<LI>1999 bytes (<CODE>i+i*i</CODE>) plus <CODE>D6</CODE></LI>
</UL>
</LI>
</UL>
<LI>Created: 17 February 2017</LI>
<LI>Updated: 2 January 2021</LI>
</UL>

<H3><A NAME="crc.cat.crc-8-gsm-b">CRC-8/GSM-B</A></H3>
<P CLASS="academic"><CODE>width=8  poly=0x49  init=0x00  refin=false  refout=false  xorout=0xff  check=0x94  residue=0x53  name="CRC-8/GSM-B"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>ETSI <A HREF="https://www.etsi.org/deliver/etsi_ts/100900_100999/100909/08.09.00_60/ts_100909v080900p.pdf">TS 100 909</A> version 8.9.0 (January 2005)
<UL>
<LI><STRONG>I</STRONG> Full mathematical description (Section 5.1.5.1.3, p.71 &mdash; Section 5.1.5.2.2, p.73 &mdash; Section 5.1.9.1.3, p.80 &mdash; Section 5.1.9.2.2, p.83 &mdash; Section 5.1.11.1.3, pp.86&ndash;7 &mdash; Section 5.1.11.2.2, p.89)</LI>
</UL>
</LI>
<LI>Created: 17 February 2017</LI>
</UL>

<H3><A NAME="crc.cat.crc-8-hitag">CRC-8/HITAG</A></H3>
<P CLASS="attested"><CODE>width=8  poly=0x1d  init=0xff  refin=false  refout=false  xorout=0x00  check=0xb4  residue=0x00  name="CRC-8/HITAG"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Contributed by Philippe Teuwen.</LI>
<LI>Used in RFID applications.</LI>
<LI>Philips Semiconductors (4 October 2001), <A HREF="https://media.digikey.com/pdf/Data%20Sheets/NXP%20PDFs/HTCM400.pdf">HITAG core module hardware HTCM400 Product Specification</A> (courtesy of Digi-Key Electronics)
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init (Section 7.6.1, p.10)</LI>
</UL>
</LI>
<LI>Philips Semiconductors (18 July 2006), <A HREF="https://media.digikey.com/pdf/Data%20Sheets/NXP%20PDFs/HTS.pdf">HTS IC H32/HTS IC H56/HTS IC H48 transponder IC Product Specification</A>, revision 3.1 (courtesy of Digi-Key Electronics)<!-- A HREF="https://www.mouser.de/datasheet/2/302/ht079231-197083.pdf" -->
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init (Section 13.1, p.45 &mdash; Section 13.2.2, p.45)</LI>
<LI><STRONG>I</STRONG> Code: C (Section 13.3, p.46)</LI>
<LI><STRONG>IV</STRONG> 1 codeword (Section 13.3, p.46)
<UL>
<LI><CODE>00000001&#8203;01100011&#8203;01000000&#8203;01101101&#8203;10100100&#8203;11110</CODE> (source: <CODE>00000</CODE> + <CODE>2C680DB4&#8203;9E</CODE>)</LI>
</UL>
</LI>
</UL>
</LI>
<LI>"Sixkay" (July&ndash;August 2015), Proxmark3 community <A HREF="http://proxmark.io/www.proxmark.org/forum/viewtopic.php%3Fpid=17406.html#p17406">forum post</A>
<UL>
<LI><STRONG>IV</STRONG> 1 codeword
<UL>
<LI><CODE>CA9340FF&#8203;C6</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI><SAMP>reveng -m CRC-8/HITAG -a 1 -A 8 -X -c 00000001&#8203;01100011&#8203;01000000&#8203;01101101&#8203;10100100&#8203;11110 11001010&#8203;10010011&#8203;01000000&#8203;11111111&#8203;11000110</SAMP> &rarr; <CODE>00 00</CODE></LI>
<LI>Created: 23 December 2021</LI>
</UL>

<H3><A NAME="crc.cat.crc-8-i-432-1">CRC-8/I-432-1</A></H3>
<P CLASS="academic"><CODE>width=8  poly=0x07  init=0x00  refin=false  refout=false  xorout=0x55  check=0xa1  residue=0xac  name="CRC-8/I-432-1"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-8-itu"><STRONG>CRC-8/ITU</STRONG></A></LI>
<LI>Used as the Asynchronous Transfer Mode Header Error Control sequence (ATM HEC).  Single bit errors in the 4-byte ATM header can be automatically corrected.</LI>
<LI><A HREF="https://www.itu.int/rec/T-REC-I.432.1/en">ITU-T Recommendation I.432.1</A> (February 1999)
<UL>
<LI><STRONG>I</STRONG> Full mathematical description (Section 7.3.2.2, p.5)</LI>
<LI><STRONG>IV</STRONG> 2 trivial codewords (Section 7.3.2.2, p.6; Table 3, p.12)
<UL>
<LI><CODE>00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;01010101</CODE></LI>
<LI><CODE>00000000&#8203;00000000&#8203;00000000&#8203;00000001&#8203;01010010</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Broadband Forum Technical Committee (10 September 1993), <A HREF="http://ftp.fit.vutbr.cz/pub/doc/ATM/atmforum/approved-specs/af-uni-0010.001.rtf.Z">User-Network Interface Specification</A>, version 3.0 (compressed RTF) (courtesy of Faculty of Information Technology, Brno University of Technology, Czechia)
<UL>
<LI><STRONG>I</STRONG> Full mathematical description (Section 2.2.6)</LI>
</UL>
</LI>
<LI>Created: 19 April 2009</LI>
<LI>Updated: 21 November 2018</LI>
</UL>

<H3><A NAME="crc.cat.crc-8-i-code">CRC-8/I-CODE</A></H3>
<P CLASS="attested"><CODE>width=8  poly=0x1d  init=0xfd  refin=false  refout=false  xorout=0x00  check=0x7e  residue=0x00  name="CRC-8/I-CODE"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Philips Semiconductors (30 January 2004), <A HREF="https://web.archive.org/web/20160407112238/http://www.nxp.com/documents/data_sheet/SL092030.pdf">SL2 ICS11 Product Specification</A>, revision 3.0 (courtesy of the Internet Archive)
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init (Section 10.1, p.26)</LI>
<LI><STRONG>I</STRONG> Code: C (Section 10.3.1, pp.27&ndash;9)</LI>
<LI><STRONG>I</STRONG> Worked example (as code trace) (Section 10.3.1, p.29)</LI>
</UL>
</LI>
<LI>Created: 3 November 2007</LI>
<LI>Updated: 6 February 2017</LI>
</UL>

<H3><A NAME="crc.cat.crc-8-lte">CRC-8/LTE</A></H3>
<P CLASS="academic"><CODE>width=8  poly=0x9b  init=0x00  refin=false  refout=false  xorout=0x00  check=0xea  residue=0x00  name="CRC-8/LTE"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>Reference from named polynomial in Prof. Koopman's <A HREF="https://users.ece.cmu.edu/~koopman/crc/notes.html">CRC Polynomial Zoo</A>.</LI>
<LI>3rd Generation Partnership Project (3GPP) <A HREF="https://www.3gpp.org/ftp/Specs/2017-06/Rel-14/36_series/36212-e30.zip">TS 36.212</A> version 14.3.0 (June 2017) (zipped MS Word document) &mdash; ETSI <A HREF="https://www.etsi.org/deliver/etsi_ts/136200_136299/136212/14.03.00_60/ts_136212v140300p.pdf">TS 136 212</A> version 14.3.0 (July 2017)
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init, XorOut, Residue (Section 5.1.1, p.10)</LI>
<LI><STRONG>I</STRONG> Attachment relation, defining RefIn ^ RefOut (Section 5.1.1, p.10)</LI>
</UL>
</LI>
<LI>3rd Generation Partnership Project (3GPP) <A HREF="https://www.3gpp.org/ftp/Specs/2017-06/Rel-14/36_series/36321-e30.zip">TS 36.321</A> version 14.3.0 (June 2017) (zipped MS Word document) &mdash; ETSI <A HREF="https://www.etsi.org/deliver/etsi_ts/136300_136399/136321/14.03.00_60/ts_136321v140300p.pdf">TS 136 321</A> version 14.3.0 (July 2017)
<UL>
<LI>Referenced from TS 136 212 section 5.2.2.1, p.23</LI>
<LI><STRONG>I</STRONG> Definition: RefIn, RefOut (Section 6.1.1, pp.67&ndash;8)</LI>
</UL>
</LI>
<LI>Created: 13 February 2016</LI>
<LI>Updated: 25 March 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-8-maxim-dow">CRC-8/MAXIM-DOW</A></H3>
<P CLASS="attested"><CODE>width=8  poly=0x31  init=0x00  refin=true  refout=true  xorout=0x00  check=0xa1  residue=0x00  name="CRC-8/MAXIM-DOW"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-8-maxim"><STRONG>CRC-8/MAXIM</STRONG></A>, <A NAME="crc.cat.dow-crc"><STRONG>DOW-CRC</STRONG></A></LI>
<LI>Used in Maxim 1-Wire&reg; device registration numbers.</LI>
<LI>Maxim Integrated (8 August 2012), <A HREF="https://datasheets.maximintegrated.com/en/ds/DS1921G.pdf">DS1921G Datasheet</A>
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init, XorOut (p.9)</LI>
<LI><STRONG>I</STRONG> Shift register diagram (p.9)</LI>
</UL>
</LI>
<LI>Maxim Integrated (22 August 2012), <A HREF="https://pdfserv.maximintegrated.com/en/an/AN27.pdf">Application Note 27</A> (PDF, <!-- A HREF="https://www.maximintegrated.com/en/app-notes/index.mvp/id/27" --><A HREF="https://www.maximintegrated.com/en/design/technical-documents/app-notes/2/27.html">HTML</A>)
<UL>
<LI><STRONG>I</STRONG> Definition: Init, Residue (pp.3&ndash;4)</LI>
<LI><STRONG>I</STRONG> Shift register diagram (p.3)</LI>
<LI><STRONG>I</STRONG> Code: 8051 assembler, Pascal (pp.5&ndash;8)</LI>
<LI><STRONG>I</STRONG> Worked examples (pp.5&ndash;9)</LI>
</UL>
</LI>
<LI>Maxim Integrated, Maxim iButton&reg; datasheets (for links see <A HREF="https://www.maximintegrated.com/en/design/technical-documents/app-notes/2/27.html">Application Note 27</A>)
<UL>
<LI><STRONG>IV</STRONG> 15 codewords
<UL>
<LI>DS1904:  <CODE>242BC5FB&#8203;00000040</CODE> (source: <CODE>40000000&#8203;FBC52B24</CODE>)</LI>
<LI>DS1920:  <CODE>102BC5FB&#8203;000000A0</CODE> (source: <CODE>A0000000&#8203;FBC52B10</CODE>)</LI>
<LI>DS1921G: <CODE>212BC5FB&#8203;00000089</CODE> (source: <CODE>89000000&#8203;FBC52B21</CODE>)</LI>
<LI>DS1971:  <CODE>142BC5FB&#8203;00000054</CODE> (source: <CODE>54000000&#8203;FBC52B14</CODE>)</LI>
<LI>DS1971:  <CODE>14B3D8FB&#8203;000000D4</CODE> (source: <CODE>D4000000&#8203;FBD8B314</CODE>)</LI>
<LI>DS1973:  <CODE>232BC5FB&#8203;000000F3</CODE> (source: <CODE>F3000000&#8203;FBC52B23</CODE>)</LI>
<LI>DS1973:  <CODE>23B3D8FB&#8203;00000073</CODE> (source: <CODE>73000000&#8203;FBD8B323</CODE>)</LI>
<LI>DS1982:  <CODE>092BC5FB&#8203;00000097</CODE> (source: <CODE>97000000&#8203;FBC52B09</CODE>)</LI>
<LI>DS1982:  <CODE>09B3D8FB&#8203;00000017</CODE> (source: <CODE>17000000&#8203;FBD8B309</CODE>)</LI>
<LI>DS1985:  <CODE>0B2BC5FB&#8203;000000ED</CODE> (source: <CODE>ED000000&#8203;FBC52B0B</CODE>)</LI>
<LI>DS1985:  <CODE>0BB3D8FB&#8203;0000006D</CODE> (source: <CODE>6D000000&#8203;FBD8B30B</CODE>)</LI>
<LI>DS1986:  <CODE>0F2BC5FB&#8203;00000019</CODE> (source: <CODE>19000000&#8203;FBC52B0F</CODE>)</LI>
<LI>DS1986:  <CODE>0FB3D8FB&#8203;00000099</CODE> (source: <CODE>99000000&#8203;FBD8B30F</CODE>)</LI>
<LI>DS1995:  <CODE>0A2BC5FB&#8203;000000D0</CODE> (source: <CODE>D0000000&#8203;FBC52B0A</CODE>)</LI>
<LI>DS1996:  <CODE>0C2BC5FB&#8203;0000005E</CODE> (source: <CODE>5E000000&#8203;FBC52B0C</CODE>)</LI>
</UL>
</LI>
</UL>
<LI>Created: 26 April 2009</LI>
<LI>Updated: 2 January 2021</LI>
</UL>

<H3><A NAME="crc.cat.crc-8-mifare-mad">CRC-8/MIFARE-MAD</A></H3>
<P CLASS="attested"><CODE>width=8  poly=0x1d  init=0xc7  refin=false  refout=false  xorout=0x00  check=0x99  residue=0x00  name="CRC-8/MIFARE-MAD"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>References courtesy of Sourceforge users "xavery" and Oleg Moiseenko.</LI>
<LI>NXP Semiconductors (6 November 2018), <A HREF="https://www.nxp.com/docs/en/application-note/AN10787.pdf">Application note AN10787: MIFARE Application Directory (MAD)</A>, rev. 7.4
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init (Section 3.7, pp.9&ndash;10)</LI>
<LI><STRONG>IV</STRONG> 1 codeword (Table 11, p.10)
<UL>
<LI><CODE>01010801&#8203;08010800&#8203;00000000&#8203;00040003&#8203;10031002&#8203;10021000&#8203;00000000&#8203;00113089</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Romain Tarti&egrave;re, Romuald Conty, <DFN>et al.</DFN> (29 June 2017), <A HREF="https://github.com/nfc-tools/libfreefare">libfreefare</A> module <A HREF="https://github.com/nfc-tools/libfreefare/blob/master/libfreefare/mad.c"><CODE>libfreefare/libfreefare/mad.c</CODE></A>
<UL>
<LI><STRONG>III</STRONG> Code: C</LI>
</UL>
</LI>
<LI>Romain Tarti&egrave;re (29 June 2017),  <A HREF="https://github.com/nfc-tools/libfreefare">libfreefare</A> module <A HREF="https://github.com/nfc-tools/libfreefare/blob/master/test/test_mad.c"><CODE>libfreefare/test/test_mad.c</CODE></A>
<UL>
<LI><STRONG>IV</STRONG> 3 codewords (1 same as in AN10787)
<UL>
<LI><CODE>0103E103&#8203;E103E103&#8203;E103E100&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;000000C4</CODE></LI>
<LI><CODE>0103E103&#8203;E103E103&#8203;E103E103&#8203;E1000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;000000AB</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Oleg Moiseenko (14 February 2019), <A HREF="https://sourceforge.net/p/reveng/discussion/general/thread/b1b7d6c065/#48bd">CRC RevEng project discussion thread post</A>
<UL>
<LI><STRONG>IV</STRONG> 1 codeword
<UL>
<LI><CODE>00563D56&#8203;3C563C56&#8203;3C563C56&#8203;3C000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000030</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Created: 21 February 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-8-nrsc-5">CRC-8/NRSC-5</A></H3>
<P CLASS="attested"><CODE>width=8  poly=0x31  init=0xff  refin=false  refout=false  xorout=0x00  check=0xf7  residue=0x00  name="CRC-8/NRSC-5"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>iBiquity Digital Corporation (16 December 2016), <A HREF="https://www.nrscstandards.org/standards-and-guidelines/documents/standards/nrsc-5-d/reference-docs/1017s.pdf">HD Radio&trade; Air Interface Design Description: Audio Transport</A>, rev. H (courtesy of National Radio Systems Committee)
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly (Section 5.2.3.2, p.33)</LI>
<LI>Incorporated by normative reference into National Radio Systems Committee standard <A HREF="https://www.nrscstandards.org/standards-and-guidelines/documents/standards/nrsc-5-d/nrsc-5-d.asp">NRSC-5-D</A>.</LI>
</UL>
</LI>
<LI>Andrew Wesie (9 June 2017), <A HREF="https://github.com/theori-io/nrsc5">NRSC-5 receiver for rtl-sdr</A>, file <A HREF="https://github.com/theori-io/nrsc5/raw/master/support/sample.xz"><CODE>nrsc5/support/sample.xz</CODE></A> (XZ compressed raw radio recording, 22 MB)
<UL>
<LI><STRONG>II</STRONG> Recording confirming implementation with 587 codewords (selection)
<UL>
<LI><CODE>5822EF63&#8203;9D240114&#8203;F25D007C&#8203;DA4208A1&#8203;CBBDE9DF&#8203;D73273A7&#8203;D1800030&#8203;38EB</CODE></LI>
<LI><CODE>B002F6E0&#8203;1BF5E00B&#8203;E3F6D054&#8203;50D23B70&#8203;273990D9&#8203;0ED77AED&#8203;F6EB803C&#8203;1AD30A68&#8203;5E0A009A</CODE></LI>
<LI><CODE>412C5659&#8203;98C49382&#8203;14C58005&#8203;800B09CA&#8203;BACB98B6&#8203;56DE98FB&#8203;199A1892&#8203;3DE06D59&#8203;2D2D399A&#8203;5CA72CFA&#8203;D96BC107&#8203;35E4774F&#8203;A06AFEAB&#8203;1726EF0F&#8203;471ABED7&#8203;04DA798D&#8203;EDABB16D&#8203;1A4F0D7B&#8203;7C49F65C&#8203;1EBE2D5D&#8203;E6EB16D8&#8203;BF2DB019&#8203;9F76D6C8&#8203;455C1C70&#8203;251B4290&#8203;CA669C00&#8203;AC529FC0&#8203;01400217&#8203;4006E686&#8203;0558EEF5&#8203;CBE4DEF9&#8203;94D1F642&#8203;156E48FA&#8203;68072E78&#8203;A7F1C88A&#8203;80DF0251&#8203;6B5672FF&#8203;F281780B&#8203;6200A3</CODE></LI>
<LI><CODE>896C6088&#8203;52750D2D&#8203;C9249055&#8203;5A448BA6&#8203;55686F62&#8203;F35A2F75&#8203;22C62EB1&#8203;31618814&#8203;68600683&#8203;310689</CODE></LI>
<LI><CODE>412C5700&#8203;68CB2362&#8203;DCCB2400&#8203;004416B4&#8203;2A5F9B2C&#8203;469A721D&#8203;106258A7&#8203;6D77C2F1&#8203;05C315DA&#8203;1257CAD1&#8203;232A4728&#8203;2475FB25&#8203;0171BCC0&#8203;94DE3C57&#8203;11A0B688&#8203;92F7A568&#8203;5CAB9788&#8203;1BFA8020&#8203;56600688&#8203;A08815EA&#8203;D3C069B6&#8203;8A952C00&#8203;058BD007&#8203;1DFD5F97&#8203;5D1CFD97&#8203;6FAE0A82&#8203;A1AF1636&#8203;E4687EE4&#8203;72C62F22&#8203;A96E3197&#8203;B8894385&#8203;2B128D04&#8203;89E911B8&#8203;5B840231&#8203;22176D06&#8203;70130348&#8203;DDD55441&#8203;6BB8852A&#8203;854364</CODE></LI>
<LI><CODE>0D0640C6&#8203;D800124B</CODE></LI>
<LI><CODE>89866AD8&#8203;12A05E80&#8203;34A3BBBA&#8203;AAB56AD4&#8203;FAD9894B&#8203;00300000&#8203;00007752</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Andrew Wesie, Clayton Smith <DFN>et al.</DFN> (25 October 2017), <A HREF="https://github.com/theori-io/nrsc5">NRSC-5 receiver for rtl-sdr</A>, module <A HREF="https://github.com/theori-io/nrsc5/blob/master/src/frame.c"><CODE>nrsc5/src/frame.c</CODE></A>
<UL>
<LI><STRONG>III</STRONG> Code: C</LI>
</UL>
</LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 16 November 2018</LI>
<LI>Updated: 20 March 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-8-opensafety">CRC-8/OPENSAFETY</A></H3>
<P CLASS="attested"><CODE>width=8  poly=0x2f  init=0x00  refin=false  refout=false  xorout=0x00  check=0x3e  residue=0x00  name="CRC-8/OPENSAFETY"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Ethernet POWERLINK Standardisation Group (16 October 2015), <A HREF="https://www.ethernet-powerlink.org/fileadmin/user_upload/Dokumente/Downloads/TECHNICAL_DOCUMENTS/EPSG_WDP_304_V-1-5-0__3_.pdf">OpenSAFETY Safety Profile Specification Working Draft Proposal</A>, version 1.5.0
<UL>
<LI><STRONG>I</STRONG> Full description (Section 5.1.2.6, pp.44&ndash;5)</LI>
<LI><STRONG>I</STRONG> Error detection capability (Section 8.1, p.183)</LI>
<LI><STRONG>I</STRONG> Code: C (Appendix 1, pp.192&ndash;5)</LI>
<LI><STRONG>IV</STRONG> 1 codeword (Appendix 1, pp.192&ndash;3)
<UL>
<LI><CODE>23C80834&#8203;11223344&#8203;55667788&#8203;3C</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Roland Knall (6 February 2012), <A HREF="https://wiki.wireshark.org/SampleCaptures?action=AttachFile&amp;do=get&amp;target=opensafety_epl_trace.pcap">openSAFETY communication using Ethernet Powerlink V2 as transport protocol</A> (PCAP file) (courtesy of Wireshark Wiki)
<UL>
<LI><STRONG>II</STRONG> Transcript confirming implementation (selected codewords)
<UL>
<LI><CODE>02A80600&#8203;00606500&#8203;06A11C</CODE></LI>
<LI><CODE>03A80001&#8203;00006065&#8203;0006A131</CODE></LI>
<LI><CODE>03A80600&#8203;00606500&#8203;07211D</CODE></LI>
<LI><CODE>02A80001&#8203;00006065&#8203;0007211D</CODE></LI>
<LI><CODE>04A80600&#8203;00606500&#8203;021393</CODE></LI>
<LI><CODE>05A80001&#8203;00006065&#8203;00021350</CODE></LI>
<LI><CODE>01AC0600&#8203;00606500&#8203;0721AF</CODE></LI>
<LI><CODE>00AC0003&#8203;00006065&#8203;000721B5</CODE></LI>
</UL>
</UL>
</LI>
<LI>Prof. Philip Koopman, Tridib Chakravarty (June 2004), <A HREF="https://users.ece.cmu.edu/~koopman/roses/dsn04/koopman04_crc_poly_embedded.pdf"><CITE>Cyclic Redundancy Code (CRC) Polynomial Selection for Embedded Networks</CITE></A>
<UL>
<LI><STRONG>III</STRONG> Assessment of polynomial performance (as <CODE>0x97</CODE> or C<SUB>2</SUB>)</LI>
</UL>
</LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 22 July 2016</LI>
<LI>Updated: 5 June 2018</LI>
</UL>

<H3><A NAME="crc.cat.crc-8-rohc">CRC-8/ROHC</A></H3>
<P CLASS="academic"><CODE>width=8  poly=0x07  init=0xff  refin=true  refout=true  xorout=0x00  check=0xd0  residue=0x00  name="CRC-8/ROHC"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI><A HREF="https://tools.ietf.org/html/rfc3095">IETF RFC 3095</A> (July 2001)
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init, XorOut (Section 5.9.1, p.125)</LI>
</UL>
</LI>
<LI>Andreas Vernersson <DFN>et al.</DFN> (26 May 2003), <A HREF="http://rohc.sourceforge.net/">rohc 1.0</A> module <CODE>rohc-1.0/rohc/src/c_util.c</CODE>
<UL>
<LI><STRONG>III</STRONG> Code: C</LI>
</UL>
</LI>
<LI>Created: 14 December 2009</LI>
<LI>Updated: 6 February 2017</LI>
</UL>

<H3><A NAME="crc.cat.crc-8-sae-j1850">CRC-8/SAE-J1850</A></H3>
<P CLASS="attested"><CODE>width=8  poly=0x1d  init=0xff  refin=false  refout=false  xorout=0xff  check=0x4b  residue=0xc4  name="CRC-8/SAE-J1850"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>SAE Standard J1850 (15 May 1994), <A HREF="https://www.avrfreaks.net/sites/default/files/datasheet.pdf">Excerpt</A> (courtesy of Michael Wolf, AVRFreaks)
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init, XorOut, Residue (Section 5.4.1, p.14)</LI>
<LI><STRONG>IV</STRONG> 7 codewords (Table 1, p.15)
<UL>
<LI><CODE>00000000&#8203;59</CODE></LI>
<LI><CODE>F2018337</CODE></LI>
<LI><CODE>0FAA0055&#8203;79</CODE></LI>
<LI><CODE>00FF5511&#8203;B8</CODE></LI>
<LI><CODE>332255AA&#8203;BBCCDDEE&#8203;FFCB</CODE></LI>
<LI><CODE>926B558C</CODE></LI>
<LI><CODE>FFFFFFFF&#8203;74</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>AUTOSAR (30 November 2020), <A HREF="https://www.autosar.org/standards/classic-platform/">AUTOSAR Classic Platform</A> release R20-11, <A HREF="https://www.autosar.org/fileadmin/user_upload/standards/classic/20-11/AUTOSAR_SWS_CRCLibrary.pdf">Specification of CRC Routines</A>
<UL>
<LI><STRONG>I</STRONG> Comprehensive primer on CRC theory (Section 7.1, pp.18&ndash;21)</LI>
<LI><STRONG>I</STRONG> All parameters (Section 7.2.1.1, p.23)</LI>
<LI><STRONG>IV</STRONG> 7 codewords (same as in SAE Standard J1850) (Section 7.2.1.1, p.23)</LI>
</UL>
</LI>
<LI>"knivmannen" (24 May 2010), StackOverflow <A HREF="https://stackoverflow.com/questions/2896753/find-the-algorithm-that-generates-the-checksum">submitted question</A>
<UL>
<LI><STRONG>IV</STRONG> 5 codewords
<UL>
<LI><CODE>55FF0000&#8203;ECFF601F</CODE></LI>
<LI><CODE>55FF0000&#8203;F0FFA038</CODE></LI>
<LI><CODE>660BEAFF&#8203;BFFFC0CA</CODE></LI>
<LI><CODE>5E18EAFF&#8203;B7FF60BD</CODE></LI>
<LI><CODE>F6301600&#8203;FCFE1081</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 17 February 2016</LI>
<LI>Updated: 2 January 2021</LI>
</UL>

<H3><A NAME="crc.cat.crc-8-smbus">CRC-8/SMBUS</A></H3>
<P CLASS="attested"><CODE>width=8  poly=0x07  init=0x00  refin=false  refout=false  xorout=0x00  check=0xf4  residue=0x00  name="CRC-8/SMBUS"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-8"><STRONG>CRC-8</STRONG></A></LI>
<LI>The System Management Interface Forum, Inc. (3 August 2000), <A HREF="http://smbus.org/specs/smbus20.pdf">System Management Bus (SMBus) Specification</A>, version 2.0
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, RefIn, RefOut (Section 4.2, p.19; Section 5.4.1.3, p.27)</LI>
</UL>
</LI>
<LI>The System Management Interface Forum, Inc. (14 June 2005), <A HREF="http://smbus.org/faq/crc8Applet.htm">CRC-8 Calculator</A>
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
<LI>PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>John Milios, USAR Systems, Inc. (22 April 1999), <A HREF="http://sbs-forum.org/marcom/dc2/20_crc-8_firmware_implementations.pdf">Firmware CRC-8 implementations for SMBus</A> (courtesy of the System Management Interface Forum, Inc.)
<UL>
<LI><STRONG>III</STRONG> Definition: Width, Poly (p.5)</LI>
<LI><STRONG>III</STRONG> Worked example (p.6)</LI>
<LI><STRONG>III</STRONG> Code: 6805 assembler (pp.14,18)</LI>
</UL>
</LI>
<LI>Michael Niedermayer, Aur&eacute;lien Jacobs <DFN>et al.</DFN> (11 July 2020), <A HREF="https://ffmpeg.org/releases/ffmpeg-4.3.1.tar.xz">FFmpeg 4.3.1</A> (XZ compressed tarfile), module <A HREF="https://github.com/FFmpeg/FFmpeg/blob/master/libavutil/tests/crc.c"><CODE>ffmpeg-4.3.1/libavutil/tests/crc.c</CODE></A>
<UL>
<LI><STRONG>IV</STRONG> 1 codeword
<UL>
<LI>1999 bytes (<CODE>i+i*i</CODE>) plus <CODE>E3</CODE></LI>
</UL>
</LI>
</UL>
<LI>Created: 30 March 2005</LI>
<LI>Updated: 2 January 2021</LI>
</UL>

<H3><A NAME="crc.cat.crc-8-tech-3250">CRC-8/TECH-3250</A></H3>
<P CLASS="attested"><CODE>width=8  poly=0x1d  init=0xff  refin=true  refout=true  xorout=0x00  check=0x97  residue=0x00  name="CRC-8/TECH-3250"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-8-aes"><STRONG>CRC-8/AES</STRONG></A>, <A NAME="crc.cat.crc-8-ebu"><STRONG>CRC-8/EBU</STRONG></A></LI>
<LI>Reference from <A HREF="https://stackoverflow.com/questions/11082109/making-a-crc-table-for-aes3-aes-2003">StackOverflow question by "ZeroDefect"</A> (18 June 2012)</LI>
<LI>European Broadcasting Union (8 June 2004), <A HREF="https://tech.ebu.ch/docs/tech/tech3250.pdf">Tech 3250: Specification of the digital audio interface</A>, 3rd edition
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init (Section 4, p.12)</LI>
<LI><STRONG>I</STRONG> Shift register diagrams (Appendix 1, p.17)</LI>
<LI><STRONG>IV</STRONG> 2 codewords (Appendix 1, pp.17&ndash;18)
<UL>
<LI><CODE>3D020000&#8203;02000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;0000009B</CODE></LI>
<LI><CODE>01000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000032</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Created: 19 July 2012</LI>
<LI>Updated: 21 November 2018</LI>
</UL>

<H3><A NAME="crc.cat.crc-8-wcdma">CRC-8/WCDMA</A></H3>
<P CLASS="third-party"><CODE>width=8  poly=0x9b  init=0x00  refin=true  refout=true  xorout=0x00  check=0x25  residue=0x00  name="CRC-8/WCDMA"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="third-party">third-party</SPAN></LI>
<LI>Andrew Richardson (17 March 2005), <A HREF="https://books.google.com/books?id=yN5lve5L4vwC&amp;pg=PA223&amp;source=gbs_selected_pages&amp;cad=2"><CITE>WCDMA Design Handbook</CITE></A>, Cambridge University Press, ISBN 0-521-82815-5 (embedded content)
<UL>
<LI><STRONG>III</STRONG> Definition: Width, Poly, Residue (Section 7.1.3, Table 7.3, p.223)</LI>
<LI><STRONG>III</STRONG> Shift register diagram (Figure 7.4, p.223)</LI>
</UL>
</LI>
<LI>Prof. Philip Koopman, Tridib Chakravarty (June 2004), <A HREF="https://users.ece.cmu.edu/~koopman/roses/dsn04/koopman04_crc_poly_embedded.pdf"><CITE>Cyclic Redundancy Code (CRC) Polynomial Selection for Embedded Networks</CITE></A>
<UL>
<LI><STRONG>III</STRONG> Assessment of polynomial performance (as <CODE>0xCD</CODE> or WCDMA-8)</LI>
</UL>
</LI>
<LI>"Max" (26 October 2009), Computer Interfacing Forum <A HREF="https://web.archive.org/web/20180920120245/https://www.lammertbies.nl/forum/viewtopic.php?t=1431">topic 1431</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>IV</STRONG> 46 codewords (selection)
<UL>
<LI><CODE>00001148</CODE></LI>
<LI><CODE>00012077</CODE></LI>
<LI><CODE>80800012</CODE></LI>
<LI><CODE>00001021&#8203;01002200&#8203;0A002D00&#8203;00000000&#8203;00460A20</CODE></LI>
<LI><CODE>00001021&#8203;01012300&#8203;0A002800&#8203;00000000&#8203;00460A54</CODE></LI>
<LI><CODE>00001021&#8203;01012500&#8203;0A002900&#8203;00000000&#8203;00460A4B</CODE></LI>
<LI><CODE>40001020&#8203;0B01001A&#8203;000A0001&#8203;00000000&#8203;00800900&#8203;1F01F393</CODE></LI>
<LI><CODE>40001020&#8203;0B01001F&#8203;000A0001&#8203;00000000&#8203;00000900&#8203;1F01F3F7</CODE></LI>
<LI><CODE>40001020&#8203;0B010020&#8203;000A0001&#8203;00000000&#8203;00000900&#8203;1F01F331</CODE></LI>
<LI><CODE>40001107&#8203;083829B4&#8203;1903</CODE></LI>
<LI><CODE>40001107&#8203;08482668&#8203;2180</CODE></LI>
<LI><CODE>40001107&#8203;085C2934&#8203;17A8</CODE></LI>
</UL>
<LI><STRONG>IV</STRONG> 1 <STRONG>non-matching</STRONG> codeword
<UL>
<LI><CODE>00001268</CODE> &ne; &hellip;<CODE>8B</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 8 November 2009</LI>
<LI>Updated: 28 December 2019</LI>
</UL>

<H3><A NAME="crc.cat-bits.10"></A><A NAME="crc.cat.crc-10-atm">CRC-10/ATM</A></H3>
<P CLASS="attested"><CODE>width=10  poly=0x233  init=0x000  refin=false  refout=false  xorout=0x000  check=0x199  residue=0x000  name="CRC-10/ATM"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-10"><STRONG>CRC-10</STRONG></A>, <A NAME="crc.cat.crc-10-i-610"><STRONG>CRC-10/I-610</STRONG></A></LI>
<LI>Used in Asynchronous Transfer Mode AAL 3/4 and OAM cells.  Note there are 6 padding zero bits between each of the 46-byte information fields and their respective CRCs.</LI>
<LI><A HREF="https://www.itu.int/rec/T-REC-I.610/en">ITU-T Recommendation I.610</A> (February 1999)
<UL>
<LI><STRONG>I</STRONG> Full mathematical description (Section 10.1, p.40)</LI>
<LI><STRONG>IV</STRONG> 2 codewords (Appendix I, p.67)
<UL>
<LI><CODE>116A6A6A&#8203;6A6A6A6A&#8203;6A6A6A6A&#8203;6A6A6A6A&#8203;6A6A6A6A&#8203;6A6A6A6A&#8203;6A6A6A6A&#8203;6A6A6A6A&#8203;6A6A6A6A&#8203;6A6A6A6A&#8203;6A6A6A6A&#8203;6A6A00AF</CODE></LI>
<LI><CODE>1801AAAA&#8203;AAAAFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFF6A6A&#8203;6A6A6A6A&#8203;6A6A6A6A&#8203;6A6A6A6A&#8203;6A6A6A6A&#8203;6A6A6A6A&#8203;6A6A02AC</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Broadband Forum Technical Committee (March 1999), <A HREF="http://ftp.fit.vutbr.cz/pub/doc/ATM/atmforum/approved-specs/af-tm-0121.000.pdf">Traffic Management Specification</A>, version 2.1 (courtesy of Faculty of Information Technology, Brno University of Technology, Czechia)
<UL>
<LI><STRONG>I</STRONG> Full mathematical description (Section 5.10.3.1, p.47)</LI>
</UL>
</LI>
<LI>Charles M. Heard, <A HREF="https://web.archive.org/web/20061005231950/http://cell-relay.indiana.edu/cell-relay/publications/software/CRC/crc10.html">Generating and Checking CRC-10 in ATM AAL 3/4 or OAM Cells</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>III</STRONG> Definition: Width, Poly</LI>
<LI><STRONG>III</STRONG> Code: C</LI>
<LI><STRONG>IV</STRONG> 7 codewords (selection; first four attributed to Angie Tso, Telecommunications Techniques Corp.)
<UL>
<LI><CODE>0A0B0C0D&#8203;0E0F0000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;000001F6</CODE></LI>
<LI><CODE>11111111&#8203;11111111&#8203;11110000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;0000016B</CODE></LI>
<LI><CODE>FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFF030F</CODE></LI>
<LI><CODE>12345678&#8203;90123456&#8203;78901234&#8203;56789012&#8203;34567890&#8203;12345678&#8203;90123456&#8203;78901234&#8203;56789012&#8203;34567890&#8203;12345678&#8203;901202ED</CODE></LI>
<LI><CODE>106A6A6A&#8203;6A6A6A6A&#8203;6A6A6A6A&#8203;6A6A6A6A&#8203;6A6A6A6A&#8203;6A6A6A6A&#8203;6A6A6A6A&#8203;6A6A6A6A&#8203;6A6A6A6A&#8203;6A6A6A6A&#8203;6A6A6A6A&#8203;6A6A03B9</CODE></LI>
<LI><CODE>18010000&#8203;0000FFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFF0000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00006A6A&#8203;6A6A6A6A&#8203;6A6A004A</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Created: 19 April 2009</LI>
<LI>Updated: 21 November 2018</LI>
</UL>

<H3><A NAME="crc.cat.crc-10-cdma2000">CRC-10/CDMA2000</A></H3>
<P CLASS="academic"><CODE>width=10  poly=0x3d9  init=0x3ff  refin=false  refout=false  xorout=0x000  check=0x233  residue=0x000  name="CRC-10/CDMA2000"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>3rd Generation Partnership Project 2 (3GPP2) (September 2009), <A HREF="https://3gpp2.org/Public_html/Specs/C.S0002-E_v1.0_cdma200_1x_PHY-090925.pdf">Physical layer standard for cdma2000 spread spectrum systems</A>, revision E, version 1.0
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly (Section 2.1.3.1.4.1.3, p.2-96)</LI>
<LI><STRONG>I</STRONG> Full description (Section 2.1.3.1.4.1, p.2-95)</LI>
<LI><STRONG>I</STRONG> Shift register diagram (Figure 2.1.3.1.4.1.3-1, p.2-96)</LI>
</UL>
</LI>
<LI>Agilent Technologies, Advanced Design System 2008 Update 2, <A HREF="https://web.archive.org/web/20170130200459/http://cp.literature.agilent.com/litweb/pdf/ads2008/cdma2k/ads2008/CDMA2K_CRC_Coder.html"><CODE>CDMA2K_CRC_Coder</CODE> module documentation</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>III</STRONG> Full description</LI>
</UL>
</LI>
<LI>Created: 14 October 2013</LI>
<LI>Updated: 28 December 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-10-gsm">CRC-10/GSM</A></H3>
<P CLASS="academic"><CODE>width=10  poly=0x175  init=0x000  refin=false  refout=false  xorout=0x3ff  check=0x12a  residue=0x0c6  name="CRC-10/GSM"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>ETSI <A HREF="https://www.etsi.org/deliver/etsi_ts/100900_100999/100909/08.09.00_60/ts_100909v080900p.pdf">TS 100 909</A> version 8.9.0 (January 2005)
<UL>
<LI><STRONG>I</STRONG> Full mathematical description (Section 4.7, p.65)</LI>
</UL>
</LI>
<LI>Created: 17 February 2017</LI>
</UL>

<H3><A NAME="crc.cat-bits.11"></A><A NAME="crc.cat.crc-11-flexray">CRC-11/FLEXRAY</A></H3>
<P CLASS="attested"><CODE>width=11  poly=0x385  init=0x01a  refin=false  refout=false  xorout=0x000  check=0x5a3  residue=0x000  name="CRC-11/FLEXRAY"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-11"><STRONG>CRC-11</STRONG></A></LI>
<LI>FlexRay Consortium (October 2010), <A HREF="https://svn.ipd.kit.edu/nlrp/public/FlexRay/FlexRay%E2%84%A2%20Protocol%20Specification%20Version%203.0.1.pdf">FlexRay Communications System Protocol Specification</A>, version 3.0.1 (courtesy of nlrp Benchmark)
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init, RefOut (Section 4.2.8, pp.114&ndash;5)</LI>
<LI><STRONG>I</STRONG> Pseudocode (Section 4.5, pp.118&ndash;9)</LI>
</UL>
</LI>
<LI>FlexRay Consortium (October 2010), <A HREF="https://svn.ipd.kit.edu/nlrp/public/FlexRay/FlexRay%E2%84%A2%20Protocol%20Conformance%20Test%20Specification%20Version%203.0.1.pdf">FlexRay Protocol Conformance Test Specification</A>, version 3.0.1 (courtesy of nlrp Benchmark)
<UL>
<LI><STRONG>IV</STRONG> 1 codeword (Section 2.7.5, p.681)
<UL>
<LI><CODE>11000000&#8203;00010000&#8203;00010000&#8203;0100110</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Robert Bosch GmbH (3 December 2007), E-Ray FlexRay IP Module, <!-- A HREF="http://www.bosch-semiconductors.com/media/ip_modules/pdf_2/flexray/071203_an001_1r02.pdf" --><!-- https://www.yumpu.com/en/document/view/26236135/flexray-ip-module-application-note-an001-wakeup-bosch- --><A HREF="https://www.yumpu.com/en/document/read/26236135/flexray-ip-module-application-note-an001-wakeup-bosch-">Application Note - Wakeup</A> (embedded content; courtesy of Yumpu)
<UL>
<LI><STRONG>IV</STRONG> 3 codewords (Section 4.4.3, pp.26&ndash;30; researched by Vivek Rajan)
<UL>
<LI><CODE>11000000&#8203;00001000&#8203;10000010&#8203;0011011</CODE></LI>
<LI><CODE>11000000&#8203;00010000&#8203;10000110&#8203;0000100</CODE></LI>
<LI><CODE>00000000&#8203;00011000&#8203;10001011&#8203;1010010</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Created: 3 November 2007</LI>
<LI>Updated: 2 January 2021</LI>
</UL>

<H3><A NAME="crc.cat.crc-11-umts">CRC-11/UMTS</A></H3>
<P CLASS="academic"><CODE>width=11  poly=0x307  init=0x000  refin=false  refout=false  xorout=0x000  check=0x061  residue=0x000  name="CRC-11/UMTS"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>Reference from named polynomial in Prof. Koopman's <A HREF="https://users.ece.cmu.edu/~koopman/crc/notes.html">CRC Polynomial Zoo</A>.</LI>
<LI>3rd Generation Partnership Project (3GPP) <A HREF="https://www.3gpp.org/ftp/Specs/2017-03/Rel-14/25_series/25427-e00.zip">TS 25.427</A> version 14.0.0 (March 2017) (zipped MS Word document) &mdash; ETSI <A HREF="https://www.etsi.org/deliver/etsi_ts/125400_125499/125427/14.00.00_60/ts_125427v140000p.pdf">TS 125 427</A> version 14.0.0 (April 2017)
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init, XorOut (Section 7.2.1, p.40)</LI>
<LI><STRONG>I</STRONG> Definition: RefIn, RefOut (Section 6.1.1, p.20; Section 7.2.1.1, pp.40&ndash;1)</LI>
</UL>
</LI>
<LI>Created: 8 February 2016</LI>
<LI>Updated: 25 March 2019</LI>
</UL>

<H3><A NAME="crc.cat-bits.12"></A><A NAME="crc.cat.crc-12-cdma2000">CRC-12/CDMA2000</A></H3>
<P CLASS="academic"><CODE>width=12  poly=0xf13  init=0xfff  refin=false  refout=false  xorout=0x000  check=0xd4d  residue=0x000  name="CRC-12/CDMA2000"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>3rd Generation Partnership Project 2 (3GPP2) (September 2009), <A HREF="https://3gpp2.org/Public_html/Specs/C.S0002-E_v1.0_cdma200_1x_PHY-090925.pdf">Physical layer standard for cdma2000 spread spectrum systems</A>, revision E, version 1.0
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly (Section 2.1.3.1.4.1.2, p.2-95)</LI>
<LI><STRONG>I</STRONG> Full description (Section 2.1.3.1.4.1, p.2-95)</LI>
<LI><STRONG>I</STRONG> Shift register diagram (Figure 2.1.3.1.4.1.2-1, p.2-96)</LI>
</UL>
</LI>
<LI>Agilent Technologies, Advanced Design System 2008 Update 2, <A HREF="https://web.archive.org/web/20170130200459/http://cp.literature.agilent.com/litweb/pdf/ads2008/cdma2k/ads2008/CDMA2K_CRC_Coder.html"><CODE>CDMA2K_CRC_Coder</CODE> module documentation</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>III</STRONG> Full description</LI>
</UL>
</LI>
<LI>Created: 14 October 2013</LI>
<LI>Updated: 28 December 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-12-dect">CRC-12/DECT</A></H3>
<P CLASS="academic"><CODE>width=12  poly=0x80f  init=0x000  refin=false  refout=false  xorout=0x000  check=0xf5b  residue=0x000  name="CRC-12/DECT"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.x-crc-12"><STRONG>X-CRC-12</STRONG></A></LI>
<LI>ETSI <A HREF="https://www.etsi.org/deliver/etsi_en/300100_300199/30017503/02.05.01_60/en_30017503v020501p.pdf">EN 300 175-3</A> version 2.5.1 (August 2013)
<UL>
<LI><STRONG>I</STRONG> Definition: Residue; full mathematical description (Section 6.2.5.4, pp.99&ndash;101)</LI>
</UL>
</LI>
<LI>Created: 29 July 2010</LI>
<LI>Updated: 15 February 2017</LI>
</UL>

<H3><A NAME="crc.cat.crc-12-gsm">CRC-12/GSM</A></H3>
<P CLASS="academic"><CODE>width=12  poly=0xd31  init=0x000  refin=false  refout=false  xorout=0xfff  check=0xb34  residue=0x178  name="CRC-12/GSM"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>ETSI <A HREF="https://www.etsi.org/deliver/etsi_ts/100900_100999/100909/08.09.00_60/ts_100909v080900p.pdf">TS 100 909</A> version 8.9.0 (January 2005)
<UL>
<LI><STRONG>I</STRONG> Full mathematical description (Section 5.1.5.1.4, p.72 &mdash; Section 5.1.6.1.4, p.75 &mdash; Section 5.1.7.1.4, p.77 &mdash; Section 5.1.8.1.4, p.78 &mdash; Section 5.1.9.1.4, p.81 &mdash; Section 5.1.10.1.4, p.85 &mdash; Section 5.1.11.1.4, p.87 &mdash; Section 5.1.12.1.4, p.91 &mdash; Section 5.1.13.1.4, p.93)</LI>
</UL>
</LI>
<LI>Created: 17 February 2017</LI>
</UL>

<H3><A NAME="crc.cat.crc-12-umts">CRC-12/UMTS</A></H3>
<P CLASS="academic"><CODE>width=12  poly=0x80f  init=0x000  refin=false  refout=true  xorout=0x000  check=0xdaf  residue=0x000  name="CRC-12/UMTS"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-12-3gpp"><STRONG>CRC-12/3GPP</STRONG></A></LI>
<LI>The crossed-endian definition is unusual but explicit.  Researched by "markw_be" at the Computer Interfacing Forum.</LI>
<LI>3rd Generation Partnership Project (3GPP) <A HREF="https://www.3gpp.org/ftp/Specs/archive/25_series/25.212/25212-f00.zip">TS 25.212</A> version 15.0.0 (September 2017) (zipped MS Word document) &mdash; ETSI <A HREF="https://www.etsi.org/deliver/etsi_ts/125200_125299/125212/15.00.00_60/ts_125212v150000p.pdf">TS 125 212</A> version 14.0.0 (July 2018)
<UL>
<LI><STRONG>I</STRONG> Mathematical description, defining Width, Poly, Init, Residue (Section 4.2.1.1, pp.19&ndash;20)</LI>
<LI><STRONG>I</STRONG> Attachment relation, defining RefIn ^ RefOut (Section 4.2.1.2, p.20)</LI>
</UL>
</LI>
<LI>Created: 10 December 2009</LI>
<LI>Updated: 28 December 2019</LI>
</UL>

<H3><A NAME="crc.cat-bits.13"></A><A NAME="crc.cat.crc-13-bbc">CRC-13/BBC</A></H3>
<P CLASS="attested"><CODE>width=13  poly=0x1cf5  init=0x0000  refin=false  refout=false  xorout=0x0000  check=0x04fa  residue=0x0000  name="CRC-13/BBC"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>S. R. Ely, D. T. Wright, British Broadcasting Corporation (March 1982), <A HREF="https://downloads.bbc.co.uk/rd/pubs/reports/1982-02.pdf">L.F. Radio-data: specification of the BBC experimental transmissions 1982</A>
<UL>
<LI><STRONG>I</STRONG> Full mathematical description (Section 5.3, pp.4&ndash;5)</LI>
<LI><STRONG>I</STRONG> Definition of bit order (Section 5.2, p.4)</LI>
<LI><STRONG>I</STRONG> Worked example (as generator matrix) (Figure 10, p.10)</LI>
<LI><STRONG>IV</STRONG> 1 additional codeword (Appendix, p.10)
<UL>
<LI><CODE>17777777&#8203;77776272&#8203;2</CODE> (octal)</LI>
</UL>
</LI>
</UL>
</LI>
<LI>Created: 14 October 2013</LI>
<LI>Updated: 6 February 2017</LI>
</UL>

<H3><A NAME="crc.cat-bits.14"></A><A NAME="crc.cat.crc-14-darc">CRC-14/DARC</A></H3>
<P CLASS="attested"><CODE>width=14  poly=0x0805  init=0x0000  refin=true  refout=true  xorout=0x0000  check=0x082d  residue=0x0000  name="CRC-14/DARC"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>The single codeword is supported by the codewords confirming <A HREF="#crc.cat.crc-6-darc">CRC-6/DARC</A>, defined identically apart from Poly in the same standard.  The source presents the codeword in transmission order, whereas the codeword is composed of the bytes of data sent LSB first.  The CRC mask is &hellip;<CODE>FF 3F</CODE>.</LI>
<LI>ETSI <A HREF="https://www.etsi.org/deliver/etsi_en/300700_300799/300751/01.02.01_60/en_300751v010201p.pdf">EN 300 751</A> version 1.2.1 (January 2003)
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly (Section 11.1, p.67)</LI>
<LI><STRONG>I</STRONG> Definition: RefIn, RefOut (Section 12, pp.69&ndash;70)</LI>
<LI><STRONG>IV</STRONG> 1 codeword (Section 11.1, p.67)
<UL>
<LI><CODE>02000102&#8203;37205052&#8203;4F4A4543&#8203;54204D41&#8203;494E4D45&#8203;4E553B08</CODE> (source: <CODE>40008040&#8203;EC040A4A&#8203;F252A2C2&#8203;2A04B282&#8203;9272B2A2&#8203;72AADC10</CODE>)</LI>
</UL>
</LI>
<LI>See section 12 for details of the transmission order.</LI>
</UL>
</LI>
<LI>Created: 14 December 2009</LI>
<LI>Updated: 20 November 2018</LI>
</UL>

<H3><A NAME="crc.cat.crc-14-gsm">CRC-14/GSM</A></H3>
<P CLASS="academic"><CODE>width=14  poly=0x202d  init=0x0000  refin=false  refout=false  xorout=0x3fff  check=0x30ae  residue=0x031e  name="CRC-14/GSM"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>ETSI <A HREF="https://www.etsi.org/deliver/etsi_ts/100900_100999/100909/08.09.00_60/ts_100909v080900p.pdf">TS 100 909</A> version 8.9.0 (January 2005)
<UL>
<LI><STRONG>I</STRONG> Full mathematical description (Section 3.9.1.2, p.28 &mdash; Section 3.9.5.2, p.40 &mdash; Section 3.10.1.2, p.42 &mdash; Section 3.10.9.2, p.54)</LI>
</UL>
</LI>
<LI>Created: 17 February 2017</LI>
</UL>

<H3><A NAME="crc.cat-bits.15"></A><A NAME="crc.cat.crc-15-can">CRC-15/CAN</A></H3>
<P CLASS="academic"><CODE>width=15  poly=0x4599  init=0x0000  refin=false  refout=false  xorout=0x0000  check=0x059e  residue=0x0000  name="CRC-15/CAN"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-15"><STRONG>CRC-15</STRONG></A></LI>
<LI>Robert Bosch GmbH (September 1991), <A HREF="http://can.marathon.ru/files/can2spec.pdf">CAN 2.0 Specification</A> (courtesy of Marathon, Russia)
<UL>
<LI><STRONG>I</STRONG> Full definition (except Check) (Section 3.1.1, pp.13&ndash;14)</LI>
<LI><STRONG>I</STRONG> Pseudocode</LI>
</UL>
</LI>
<LI>Created: 2 November 2007</LI>
<LI>Updated: 21 November 2018</LI>
</UL>

<H3><A NAME="crc.cat.crc-15-mpt1327">CRC-15/MPT1327</A></H3>
<P CLASS="attested"><CODE>width=15  poly=0x6815  init=0x0000  refin=false  refout=false  xorout=0x0001  check=0x2566  residue=0x6815  name="CRC-15/MPT1327"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>MX-COM reference from Koopman and Chakravarty (2004).</LI>
<LI>UK Radiocommunications Agency (20 June 1997), <A HREF="https://webarchive.nationalarchives.gov.uk/frame/20040104233440/http://www.ofcom.org.uk/static/archive/ra/publication/mpt/mpt_pdf/mpt1327.pdf">MPT 1327: A signalling standard for trunked private land mobile radio systems</A>, 3rd edition (courtesy of UK National Archives)
<UL>
<LI><STRONG>I</STRONG> Full mathematical description (Section 3.2.3, p.3-3)</LI>
<LI><STRONG>I</STRONG> Error control properties (Appendix 2, p.A2-1)</LI>
<LI><STRONG>IV</STRONG> 1 codeword (Section 5.1.1, p.5-3; Appendix 3, p.A3-1)
<UL>
<LI><CODE>10101010&#8203;10101010&#8203;11000100&#8203;11010100&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000001&#8203;01010101&#8203;01010101&#8203;10001001&#8203;101011</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>"whiteox11" (28 December 2011), <A HREF="https://www.youtube.com/watch?v=u0i9A8c8PNo">"mpt1327 decoding"</A> (video, embedded content; courtesy of YouTube)
<UL>
<LI><STRONG>II</STRONG> Transcript confirming implementation with 25 codewords (selection)
<UL>
<LI><CODE>10011111&#8203;11010010&#8203;10110100&#8203;11110011&#8203;11111011&#8203;01000100&#8203;01001111&#8203;0010110</CODE></LI>
<LI><CODE>10101001&#8203;11000101&#8203;01100000&#8203;10100000&#8203;11011100&#8203;01101100&#8203;11101011&#8203;1011101</CODE></LI>
<LI><CODE>10011111&#8203;11010001&#8203;01001010&#8203;01110010&#8203;01101001&#8203;01011000&#8203;10010010&#8203;1110000</CODE></LI>
<LI><CODE>10011010&#8203;01000111&#8203;11000100&#8203;01101000&#8203;00001010&#8203;10101010&#8203;10111111&#8203;0011100</CODE></LI>
<LI><CODE>10101011&#8203;10010110&#8203;10110100&#8203;00110010&#8203;01011110&#8203;10100000&#8203;11000010&#8203;0000100</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>"radiowavemaniac" (21 November 2012), <A HREF="https://www.youtube.com/watch?v=faG_SnEH0u4">"RTL-SDR Trunkview Decoder MPT1327"</A> (video, embedded content; courtesy of YouTube)
<UL>
<LI><STRONG>II</STRONG> Transcript confirming implementation with 10 codewords
<UL>
<LI><CODE>10001010&#8203;00001100&#8203;00001100&#8203;01110010&#8203;00001000&#8203;01111000&#8203;11111100&#8203;0110000</CODE></LI>
<LI><CODE>10001110&#8203;00001100&#8203;00001100&#8203;01110000&#8203;00010000&#8203;00000000&#8203;00001101&#8203;0100110</CODE></LI>
<LI><CODE>10010011&#8203;01110000&#8203;11010100&#8203;01000011&#8203;11111111&#8203;10010000&#8203;00101110&#8203;1110100</CODE></LI>
<LI><CODE>10010011&#8203;01100111&#8203;10011100&#8203;01000011&#8203;11111111&#8203;10010000&#8203;01100110&#8203;0110101</CODE></LI>
<LI><CODE>10010011&#8203;01100111&#8203;10011100&#8203;11010010&#8203;01100001&#8203;01111100&#8203;01010000&#8203;1100011</CODE></LI>
<LI><CODE>10010011&#8203;11111111&#8203;11100100&#8203;01011101&#8203;10011110&#8203;01111000&#8203;10101111&#8203;1101011</CODE></LI>
<LI><CODE>10010011&#8203;00001011&#8203;11100100&#8203;00100101&#8203;10011110&#8203;01110000&#8203;11100100&#8203;0011011</CODE></LI>
<LI><CODE>10010011&#8203;00001011&#8203;11100100&#8203;00100001&#8203;10011110&#8203;01100000&#8203;00100011&#8203;0011011</CODE></LI>
<LI><CODE>10010011&#8203;01100110&#8203;10100100&#8203;01000011&#8203;11111111&#8203;10010000&#8203;01101111&#8203;1000111</CODE></LI>
<LI><CODE>10010011&#8203;01100110&#8203;10110100&#8203;01000011&#8203;11111111&#8203;10010000&#8203;10111111&#8203;0001110</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>MX-COM, Inc. (17 August 1998), <A HREF="https://web.archive.org/web/20040831130703/http://www.celects.com/Products/applications/apmptr2.pdf">Error detection and correction of MPT1327 formatted messages using MX429A or MX809 devices</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>III</STRONG> Full mathematical description (Section 1.2.1, p.1)</LI>
<LI><STRONG>III</STRONG> Worked example (Section 1.2.2, p.2)</LI>
<LI><STRONG>III</STRONG> Code: C (Section 1.2.3, p.3)</LI>
</UL>
</LI>
<LI><SAMP>reveng -m CRC-15/MPT1327 -t -X -c 9FD2B4F3&#8203;FB44</SAMP> &rarr; <CODE>4F2C</CODE></LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 16 July 2012</LI>
<LI>Updated: 29 December 2021</LI>
</UL>

<H3><A NAME="crc.cat-bits.16"></A><A NAME="crc.cat.crc-16-arc">CRC-16/ARC</A></H3>
<P CLASS="attested"><CODE>width=16  poly=0x8005  init=0x0000  refin=true  refout=true  xorout=0x0000  check=0xbb3d  residue=0x0000  name="CRC-16/ARC"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.arc"><STRONG>ARC</STRONG></A>, <A NAME="crc.cat.crc-16"><STRONG>CRC-16</STRONG></A>, <A NAME="crc.cat.crc-16-lha"><STRONG>CRC-16/LHA</STRONG></A>, <A NAME="crc.cat.crc-ibm"><STRONG>CRC-IBM</STRONG></A></LI>
<LI>AUTOSAR (30 November 2020), <A HREF="https://www.autosar.org/standards/classic-platform/">AUTOSAR Classic Platform</A> release R20-11, <A HREF="https://www.autosar.org/fileadmin/user_upload/standards/classic/20-11/AUTOSAR_SWS_CRCLibrary.pdf">Specification of CRC Routines</A>
<UL>
<LI><STRONG>I</STRONG> Comprehensive primer on CRC theory (Section 7.1, pp.18&ndash;21)</LI>
<LI><STRONG>I</STRONG> All parameters (Section 7.2.2.2, p.25)</LI>
<LI><STRONG>IV</STRONG> 7 codewords (Section 7.2.2.2, p.25)
<UL>
<LI><CODE>00000000&#8203;0000</CODE></LI>
<LI><CODE>F20183E1&#8203;C2</CODE></LI>
<LI><CODE>0FAA0055&#8203;E30B</CODE></LI>
<LI><CODE>00FF5511&#8203;CF6C</CODE></LI>
<LI><CODE>332255AA&#8203;BBCCDDEE&#8203;FF98AE</CODE></LI>
<LI><CODE>926B554E&#8203;E2</CODE></LI>
<LI><CODE>FFFFFFFF&#8203;0194</CODE></LI>
</UL>
</LI>
</UL>
<LI>System Enhancement Associates (24 October 1986), ARC 5.20
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>Haruyasu Yoshizaki (10 January 1996), LHA 2.55E
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>Rahul Dhesi (19 April 1996), ZOO 2.1a
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>Lammert Bies (August 2011), <A HREF="https://www.lammertbies.nl/comm/info/crc-calculation">CRC calculator</A>
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
<UL>
<LI><STRONG>II</STRONG> Implementation (<CODE>CRC16_arc</CODE>)</LI>
</UL>
</LI>
<LI>Dr Ross N. Williams (19 August 1993), <A HREF="https://web.archive.org/web/20190527220400/http://www.ross.net/crc/download/crc_v3.txt">"A Painless Guide to CRC Error Detection Algorithms"</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>III</STRONG> All parameters (except Residue)</LI>
</UL>
</LI>
<LI>Emil Lenchak, Texas Instruments, Inc. (June 2018), <A HREF="https://www.ti.com/lit/an/slaa221a/slaa221a.pdf">CRC Implementation With MSP430</A>
<UL>
<LI><STRONG>III</STRONG> All parameters (except Residue) (Section 4.6, p.6)</LI>
</UL>
</LI>
<LI>Altera Corporation (April 1999), <A HREF="https://web.archive.org/web/20070221144121/http://www.msc.rl.ac.uk/europractice/vendors/dscrc.pdf">crc MegaCore Function Data Sheet</A>, version 2 (courtesy of the Internet Archive)
<UL>
<LI><STRONG>III</STRONG> All parameters (except Residue) (p.6)</LI>
</UL>
</LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 30 March 2005</LI>
<LI>Updated: 2 January 2021</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-cdma2000">CRC-16/CDMA2000</A></H3>
<P CLASS="academic"><CODE>width=16  poly=0xc867  init=0xffff  refin=false  refout=false  xorout=0x0000  check=0x4c06  residue=0x0000  name="CRC-16/CDMA2000"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>3rd Generation Partnership Project 2 (3GPP2) (September 2009), <A HREF="https://3gpp2.org/Public_html/Specs/C.S0002-E_v1.0_cdma200_1x_PHY-090925.pdf">Physical layer standard for cdma2000 spread spectrum systems</A>, revision E, version 1.0
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly (Section 2.1.3.1.4.1.1, p.2-95)</LI>
<LI><STRONG>I</STRONG> Full description (Section 2.1.3.1.4.1, p.2-95)</LI>
<LI><STRONG>I</STRONG> Shift register diagram (Figure 2.1.3.1.4.1.1-1, p.2-95)</LI>
</UL>
</LI>
<LI>Agilent Technologies, Advanced Design System 2008 Update 2, <A HREF="https://web.archive.org/web/20170130200459/http://cp.literature.agilent.com/litweb/pdf/ads2008/cdma2k/ads2008/CDMA2K_CRC_Coder.html"><CODE>CDMA2K_CRC_Coder</CODE> module documentation</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>III</STRONG> Full description</LI>
</UL>
</LI>
<LI>Created: 14 October 2013</LI>
<LI>Updated: 28 December 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-cms">CRC-16/CMS</A></H3>
<P CLASS="third-party"><CODE>width=16  poly=0x8005  init=0xffff  refin=false  refout=false  xorout=0x0000  check=0xaee7  residue=0x0000  name="CRC-16/CMS"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="third-party">third-party</SPAN></LI>
<LI>Dainius &#352;imelevi&#269;ius, Remi K. Mommsen <DFN>et al.</DFN> (16 December 2016), CERN <!-- A HREF="https://svnweb.cern.ch/trac/cmsos" -->CMS Online Software (XDAQ)<!-- /A --> release 14, <A HREF="https://xdaq.web.cern.ch/xdaq/repo/14/cc7/x86_64/base/SRPMS/daq-evb-5.1.1-1.cmsos14.centos7.gcc4_8_5.src.rpm">Event Builder source package</A> (RPM package), files <A HREF="https://xdaq.web.cern.ch/xdaq/doxygen/baseline14/CRCCalculator_8h_source.html"><CODE>daq/evb/include/evb/CRCCalculator.h</CODE></A>, <A HREF="https://github.com/mommsen/evb/blob/master/src/common/CRCCalculator.cc"><CODE>daq/evb/src/common/CRCCalculator.cc</CODE></A><!-- , <A HREF="https://xdaq.web.cern.ch/xdaq/doxygen/12/CRC16_8h_source.html"><CODE>daq/rubuilder/utils/include/rubuilder/utils/CRC16.h</CODE></A> -->
<UL>
<LI><STRONG>III</STRONG> All parameters (except Residue)</LI>
<LI><STRONG>III</STRONG> Code: C++</LI>
</UL>
</LI>
<LI>"movilstore" (24 January 2011), Computer Interfacing Forum <A HREF="https://web.archive.org/web/20181116144459/https://www.lammertbies.nl/forum/viewtopic.php?t=1650">topic 1650</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>III</STRONG> Reference to application of algorithm on Samsung mobiles</LI>
<LI><STRONG>IV</STRONG> 5 codewords
<UL>
<LI><CODE>02000800&#8203;78110000&#8203;F00F0000&#8203;F7E0</CODE></LI>
<LI><CODE>02000800&#8203;5B110000&#8203;F00F0000&#8203;4725</CODE></LI>
<LI><CODE>02000800&#8203;50110000&#8203;F00F0000&#8203;F71F</CODE></LI>
<LI><CODE>02000800&#8203;24110000&#8203;F00F0000&#8203;3636</CODE></LI>
<LI><CODE>02000800&#8203;A6100000&#8203;F00F0000&#8203;141A</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>"xtrusion" (28 November 2010), Computer Interfacing Forum <A HREF="https://web.archive.org/web/20181116143345/https://www.lammertbies.nl/forum/viewtopic.php?t=1627">topic 1627</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>IV</STRONG> 12 codewords
<UL>
<LI><CODE>02000800&#8203;34100000&#8203;B0090000&#8203;B725</CODE></LI>
<LI><CODE>02000800&#8203;29100000&#8203;B0090000&#8203;E76E</CODE></LI>
<LI><CODE>02000800&#8203;02100000&#8203;B0090000&#8203;D79B</CODE></LI>
<LI><CODE>02000800&#8203;05100000&#8203;B0090000&#8203;A789</CODE></LI>
<LI><CODE>02000800&#8203;78100000&#8203;B0090000&#8203;F696</CODE></LI>
<LI><CODE>00050900&#8203;00000000&#8203;30303030&#8203;00D55E</CODE></LI>
<LI><CODE>01000400&#8203;05100000&#8203;3793</CODE></LI>
<LI><CODE>02000800&#8203;34100000&#8203;F00F0000&#8203;3740</CODE></LI>
<LI><CODE>02000800&#8203;29100000&#8203;F00F0000&#8203;670B</CODE></LI>
<LI><CODE>02000800&#8203;02100000&#8203;F00F0000&#8203;57FE</CODE></LI>
<LI><CODE>02000800&#8203;05100000&#8203;F00F0000&#8203;27EC</CODE></LI>
<LI><CODE>02000800&#8203;78100000&#8203;F00F0000&#8203;76F3</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>"Robert" ("xtrusion") (25 December 2010), Computer Interfacing Forum <A HREF="https://web.archive.org/web/20181116152122/https://www.lammertbies.nl/forum/viewtopic.php?t=1636">topic 1636</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>IV</STRONG> 5 codewords
<UL>
<LI><CODE>02000C00&#8203;30100000&#8203;9A010000&#8203;00000000&#8203;837B</CODE></LI>
<LI><CODE>02000C00&#8203;30100000&#8203;9A010000&#8203;9A010000&#8203;4B55</CODE></LI>
<LI><CODE>02000C00&#8203;30100000&#8203;9A010000&#8203;34030000&#8203;934E</CODE></LI>
<LI><CODE>02000C00&#8203;30100000&#8203;9A010000&#8203;CE040000&#8203;5B09</CODE></LI>
<LI><CODE>02000C00&#8203;30100000&#8203;9A010000&#8203;68060000&#8203;A311</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 13 July 2016</LI>
<LI>Updated: 28 December 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-dds-110">CRC-16/DDS-110</A></H3>
<P CLASS="attested"><CODE>width=16  poly=0x8005  init=0x800d  refin=false  refout=false  xorout=0x0000  check=0x9ecf  residue=0x0000  name="CRC-16/DDS-110"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Used in the ELV DDS 110 function generator.  Init value is equivalent to an augment of 0xFFFF prepended to the message.</LI>
<LI>ELV Elektronik AG (March 2008), <A HREF="https://web.archive.org/web/20150121125358/http://www.elv-downloads.de/downloads/journal/dds10_110.pdf" LANG="de" HREFLANG="de">Software-Schnittstelle der Funktionsgeneratoren DDS 10/DDS 110</A> (in German; courtesy of the Internet Archive)
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, CRC byte order (p.67)</LI>
<LI><STRONG>IV</STRONG> 1 codeword (escaped according to the text) (p.67)
<UL>
<LI><CODE>02001082&#8203;00731082&#8203;F7FE</CODE> (source: <CODE>02000200&#8203;731082FE&#8203;F7</CODE>)
</UL>
</LI>
</UL>
</LI>
<LI>"wortel", "Gammatester" (19 July 2009), Computer Interfacing Forum <A HREF="https://web.archive.org/web/20180920114944/https://www.lammertbies.nl/forum/viewtopic.php?t=1372">topic 1372</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>III</STRONG> All parameters (except Check, Residue) ("Gammatester")</LI>
<LI><STRONG>IV</STRONG> 3 codewords ("wortel")
<UL>
<LI><CODE>02001082&#8203;007800ED&#8203;96</CODE></LI>
<LI><CODE>02001082&#8203;0078016D&#8203;93</CODE></LI>
<LI><CODE>02000500&#8203;6600057A&#8203;586435</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 30 November 2009</LI>
<LI>Updated: 28 December 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-dect-r">CRC-16/DECT-R</A></H3>
<P CLASS="attested"><CODE>width=16  poly=0x0589  init=0x0000  refin=false  refout=false  xorout=0x0001  check=0x007e  residue=0x0589  name="CRC-16/DECT-R"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.r-crc-16"><STRONG>R-CRC-16</STRONG></A></LI>
<LI>Used in DECT A-fields.</LI>
<LI>ETSI <A HREF="https://www.etsi.org/deliver/etsi_en/300100_300199/30017503/02.05.01_60/en_30017503v020501p.pdf">EN 300 175-3</A> version 2.5.1 (August 2013)
<UL>
<LI><STRONG>I</STRONG> Full mathematical description (Section 6.2.5.2, p.99)</LI>
<LI><STRONG>I</STRONG> Performance of polynomial (Annex B, p.297)</LI>
</UL>
</LI>
<LI>Thomas Pircher (6 February 2019), <A HREF="https://pycrc.org/">pycrc 0.9.2</A>
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>Pavel Yazev (9 September 2015), <!-- A HREF="http://www.cgran.org/1273/" -->gr-dect2<!-- /A --> module <A HREF="https://github.com/pavelyazev/gr-dect2/blob/master/lib/packet_decoder_impl.cc"><CODE>gr-dect2/lib/packet_decoder_impl.cc</CODE></A>
<UL>
<LI><STRONG>III</STRONG> Code: C++</LI>
</UL>
</LI>
<LI>Created: 7 December 2009</LI>
<LI>Updated: 28 December 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-dect-x">CRC-16/DECT-X</A></H3>
<P CLASS="attested"><CODE>width=16  poly=0x0589  init=0x0000  refin=false  refout=false  xorout=0x0000  check=0x007f  residue=0x0000  name="CRC-16/DECT-X"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.x-crc-16"><STRONG>X-CRC-16</STRONG></A></LI>
<LI>The single codeword is supported by the implementation confirming <A HREF="#crc.cat.crc-16-dect-r">CRC-16/DECT-R</A>, defined identically apart from XorOut in the same standard.  Used in DECT B-fields.</LI>
<LI>ETSI <A HREF="https://www.etsi.org/deliver/etsi_en/300100_300199/30017503/02.05.01_60/en_30017503v020501p.pdf">EN 300 175-3</A> version 2.5.1 (August 2013)
<UL>
<LI><STRONG>I</STRONG> Definition: Residue; full mathematical description (Section 6.2.5.4, pp.99&ndash;101)</LI>
<LI><STRONG>I</STRONG> Performance of polynomial (Annex B, p.297)</LI>
</UL>
<LI>"Nick" (27 November 2010), StackOverflow <A HREF="https://stackoverflow.com/questions/4289611/crc-16-dect-with-poly-x16-x10-x8-x7-x3-1">submitted question</A>
<UL>
<LI><STRONG>IV</STRONG> 1 codeword
<UL>
<LI><CODE>A37029</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Created: 30 July 2010</LI>
<LI>Updated: 2 January 2021</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-dnp">CRC-16/DNP</A></H3>
<P CLASS="confirmed"><CODE>width=16  poly=0x3d65  init=0x0000  refin=true  refout=true  xorout=0xffff  check=0xea82  residue=0x66c5  name="CRC-16/DNP"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="confirmed">confirmed</SPAN></LI>
<LI>Lammert Bies (August 2011), <A HREF="https://www.lammertbies.nl/comm/info/crc-calculation">CRC calculator</A>
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>Created: 2 November 2007</LI>
<LI>Updated: 28 December 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-en-13757">CRC-16/EN-13757</A></H3>
<P CLASS="confirmed"><CODE>width=16  poly=0x3d65  init=0x0000  refin=false  refout=false  xorout=0xffff  check=0xc2b7  residue=0xa366  name="CRC-16/EN-13757"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="confirmed">confirmed</SPAN></LI>
<LI>Used in the Wireless M-Bus protocol for remote meter reading.
<LI>STACKFORCE GmbH (2014), <A HREF="https://web.archive.org/web/20160327015623/https://www.stackforce.de/en/products/capt2web">Capt&sup2;web sniffer</A>, wireless M-Bus monitor (courtesy of the Internet Archive)
<UL>
<LI><STRONG>II</STRONG> Transcripts confirming implementation with at least 124 codewords (selection)
<UL>
<LI><CODE>EE449ACE&#8203;01000080&#8203;2307AABC</CODE></LI>
<LI><CODE>7A4700E0&#8203;A535E79C&#8203;FAA94D07&#8203;B173BC10&#8203;1496</CODE></LI>
<LI><CODE>021CCB01&#8203;27DCF516&#8203;FF4EA8BC&#8203;0A485174&#8203;4D3D</CODE></LI>
<LI><CODE>438A680E&#8203;CFC8EAA7&#8203;F5D6476C&#8203;AD938EBF&#8203;88AF</CODE></LI>
<LI><CODE>259794C3&#8203;36C6FE96&#8203;01D99F81&#8203;B5EBDD9F&#8203;36B5</CODE></LI>
<LI><CODE>67FC406A&#8203;A1107F38&#8203;0CA349EB&#8203;2F1AD57A&#8203;D22A</CODE></LI>
<LI><CODE>7D8067CD&#8203;9D1076</CODE></LI>
<LI><CODE>D0F1E6C2&#8203;C3962E</CODE></LI>
<LI><CODE>384BABA9&#8203;53BCE5</CODE></LI>
<LI><CODE>70414545&#8203;C59920</CODE></LI>
<LI><CODE>F0649A4E&#8203;11111111&#8203;0000E9CA</CODE></LI>
<LI><CODE>A12F2F2F&#8203;2F2F2F2F&#8203;2F2F2F2F&#8203;2F2F2F2F&#8203;4A08</CODE></LI>
<LI><CODE>2F2F2F2F&#8203;2F2F2F2F&#8203;2F2F2F2F&#8203;2F2F2F2F&#8203;63D7</CODE></LI>
<LI><CODE>7A8D00E0&#8203;A503B192&#8203;2864C36F&#8203;29B37AF0&#8203;646A</CODE></LI>
<LI><CODE>D1391E97&#8203;9A44C456&#8203;786CBB99&#8203;CD6ECAAC&#8203;B373</CODE></LI>
</UL>
</LI>
<LI>In the Web interface packet view, the bytes of the A and M fields are displayed in reverse, compared to transmission order.</LI>
</UL>
</LI>
<LI>Patrick Seem, Texas Instruments, Inc. (23 October 2008), <A HREF="https://www.ti.com/lit/an/swra234a/swra234a.pdf">AN067: Wireless MBUS Implementation with CC1101 and MSP430</A>
<UL>
<LI><STRONG>III</STRONG> Definition: Width, Poly, Init, XorOut (Section 5.4, p.9)</LI>
<LI><STRONG>III</STRONG> Describes synchronous transfer with MSBs sent first, implying RefIn and RefOut (Sections 7.2.1, 7.3.1, pp.13&ndash;14)</LI>
</UL>
</LI>
<LI>Dr.-Ing. Thomas Weinzierl, Weinzierl Engineering GmbH (July 2005), <A HREF="https://web.archive.org/web/20160401133140/http://www.knx.org/fileadmin/downloads/05%20-%20KNX%20Partners/03%20-%20Becoming%20a%20KNX%20Scientific%20Partner/2005-09%20Scientific%20Conference%20Papers%20Pisa/06_Weinzierl%20Eng_KnxRf.pdf">Stack Implementation for KNX-RF</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>III</STRONG> Definition: Poly (Section 2.3, p.3)</LI>
<LI><STRONG>III</STRONG> CRC byte order, implying RefIn and RefOut (Section 2.3, p.2, etc.)</LI>
<LI>Radio link corresponds to Link A in AN067 (Section 2.2, p.2 vs. AN067 table 3, p.6)</LI>
</UL>
</LI>
<LI>"Tim" (6 June 2004), Control.com <!-- A HREF="https://control.com/thread/1026195978" --><A HREF="https://control.com/forums/threads/iec-870-5-2-crc-source-code.17454/">forum post</A><!-- mentions a 16-bit poly 0x5b93 (0xc9da, 0xadc9) as well -->
<UL>
<LI><STRONG>III</STRONG> Width, Poly cited for ISO/IEC 60870-5-2</LI>
</UL>
</LI>
<LI>"MarcPo", "Gammatester" (30 September 2008), Computer Interfacing Forum <A HREF="https://web.archive.org/web/20181116143247/https://www.lammertbies.nl/forum/viewtopic.php?t=925">topic 925</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>III</STRONG> All parameters (except Check, Residue) ("Gammatester")
<LI><STRONG>IV</STRONG> 1 codeword ("MarcPo")
<UL>
<LI><CODE>780B1343&#8203;65871E6D</CODE>
</LI>
</UL>
</LI>
</UL>
</LI>
<LI>"Chris P." (27 April 2009), Computer Interfacing Forum <A HREF="https://web.archive.org/web/20181116140040/https://www.lammertbies.nl/forum/viewtopic.php?t=1315">topic 1315</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>IV</STRONG> 1 codeword
<UL>
<LI><CODE>07400001&#8203;AAAA0000&#8203;363E</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 1 October 2008</LI>
<LI>Updated: 28 December 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-genibus">CRC-16/GENIBUS</A></H3>
<P CLASS="attested"><CODE>width=16  poly=0x1021  init=0xffff  refin=false  refout=false  xorout=0xffff  check=0xd64e  residue=0x1d0f  name="CRC-16/GENIBUS"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-16-darc"><STRONG>CRC-16/DARC</STRONG></A>, <A NAME="crc.cat.crc-16-epc"><STRONG>CRC-16/EPC</STRONG></A>, <A NAME="crc.cat.crc-16-epc-c1g2"><STRONG>CRC-16/EPC-C1G2</STRONG></A>, <A NAME="crc.cat.crc-16-i-code"><STRONG>CRC-16/I-CODE</STRONG></A></LI>
<LI>Used in standardised RFID tags.  Presented high byte first.</LI>
<LI>EPCglobal Inc&trade; (4 September 2018), <A HREF="https://www.gs1.org/standards/epc-rfid/uhf-air-interface-protocol">EPC UHF Gen2 Air Interface Protocol</A>: <A HREF="https://www.gs1.org/sites/default/files/docs/epc/gs1-epc-gen2v2-uhf-airinterface_i21_r_2018-09-04.pdf">EPC&trade; Radio-Frequency Identity Protocols Generation-2 UHF RFID Standard</A>, release 2.1
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init, Residue (Table 6-11, p.33)</LI>
<LI><STRONG>I</STRONG> Definition: RefIn, Residue (Annex F.2, p.143)</LI>
<LI><STRONG>I</STRONG> Shift register circuit diagram (Figure F-2, p.144)</LI>
<LI><STRONG>I</STRONG> Transmission order, implying RefIn and RefOut (Section 6.3.1.4, p.33)</LI>
<LI><STRONG>IV</STRONG> 7 codewords (Table F-2, pp.144&ndash;5)
<UL>
<LI><CODE>0000E2F0</CODE></LI>
<LI><CODE>08001111&#8203;CCAE</CODE></LI>
<LI><CODE>10001111&#8203;2222968F</CODE></LI>
<LI><CODE>18001111&#8203;22223333&#8203;78F6</CODE></LI>
<LI><CODE>20001111&#8203;22223333&#8203;4444C241</CODE></LI>
<LI><CODE>28001111&#8203;22223333&#8203;44445555&#8203;2A91</CODE></LI>
<LI><CODE>30001111&#8203;22223333&#8203;44445555&#8203;66661835</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Philips Semiconductors (30 January 2004), <A HREF="https://web.archive.org/web/20160407112238/http://www.nxp.com/documents/data_sheet/SL092030.pdf">SL2 ICS11 Product Specification</A>, revision 3.0 (courtesy of the Internet Archive)
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init, Residue (Section 10.2, p.26)</LI>
<LI><STRONG>I</STRONG> Code: C (Section 10.3.2, pp.30&ndash;32)</LI>
<LI><STRONG>I</STRONG> Worked example (as code trace) (Section 10.3.2, p.32)</LI>
</UL>
<LI>ETSI <A HREF="https://www.etsi.org/deliver/etsi_en/300700_300799/300751/01.02.01_60/en_300751v010201p.pdf">EN 300 751</A> version 1.2.1 (January 2003)
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly (Section 11.2.5, p.68)</LI>
<LI><STRONG>IV</STRONG> 1 codeword (Section 11.2.5, p.68)
<UL>
<LI><CODE>40214142&#8203;4387F5</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>Hee-Bok Kang <DFN>et al.</DFN> (December 2008), <!-- A HREF="https://onlinelibrary.wiley.com/doi/10.4218/etrij.08.0108.0338" --><A HREF="https://onlinelibrary.wiley.com/doi/pdf/10.4218/etrij.08.0108.0338">High Security FeRAM-Based EPC C1G2 UHF (860 MHz-960 MHz) Passive RFID Tag Chip</A>, ETRI Journal, Volume 30 Number 6
<UL>
<LI><STRONG>IV</STRONG> 2 codewords (p.830)
<UL>
<LI><CODE>10100000&#8203;00010000&#8203;00000000&#8203;00000010&#8203;10000010&#8203;10001</CODE></LI>
<LI><CODE>3000319F&#8203;60A35627&#8203;6E28F14F&#8203;DC9C5DB4</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>"Geert" (7 December 2007), Computer Interfacing Forum <A HREF="https://web.archive.org/web/20180920122009/https://www.lammertbies.nl/forum/viewtopic.php?t=216">topic 216</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>III</STRONG> Quoted definition for GENIbus: Width, Poly, Init, XorOut</LI>
<LI><STRONG>IV</STRONG> 2 codewords cited for GENIbus
<UL>
<LI><CODE>10012002&#8203;0C823E00&#8203;39821500&#8203;64820900&#8203;FA910A</CODE></LI>
<LI><CODE>07200102&#8203;C302101A&#8203;901C</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Scott McLaughlin (24 September 2008), Computer Interfacing Forum <A HREF="https://web.archive.org/web/20181116150244/https://www.lammertbies.nl/forum/viewtopic.php?t=907">topic 907</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>III</STRONG> Reported definition for TI Tag-It: full (except Check, Residue)</LI>
<LI><STRONG>IV</STRONG> 4 codewords cited for TI Tag-It
<UL>
<LI><CODE>00000000&#8203;01000000&#8203;00010110&#8203;00111100&#8203;10111</CODE></LI>
<LI><CODE>00000000&#8203;01010000&#8203;00000000&#8203;00001100&#8203;01011000&#8203;11010000&#8203;00010110&#8203;11010001&#8203;11001</CODE></LI>
<LI><CODE>11000000&#8203;01010000&#8203;00000000&#8203;00000110&#8203;00101100&#8203;01101000&#8203;00001000&#8203;00010001&#8203;11110010&#8203;01111011&#8203;01000101&#8203;11000000&#8203;11000001</CODE></LI>
<LI><CODE>00000001&#8203;01010000&#8203;00000000&#8203;00001100&#8203;01011000&#8203;11010000&#8203;00011000&#8203;00111000&#8203;00000101&#8203;01010101&#8203;01010110&#8203;00100110&#8203;00111</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 2 November 2007</LI>
<LI>Updated: 3 January 2021</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-gsm">CRC-16/GSM</A></H3>
<P CLASS="attested"><CODE>width=16  poly=0x1021  init=0x0000  refin=false  refout=false  xorout=0xffff  check=0xce3c  residue=0x1d0f  name="CRC-16/GSM"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>ETSI <A HREF="https://www.etsi.org/deliver/etsi_ts/100900_100999/100909/08.09.00_60/ts_100909v080900p.pdf">TS 100 909</A> version 8.9.0 (January 2005)
<UL>
<LI><STRONG>I</STRONG> Full mathematical description (Section 5.1.2.2, p.67 &mdash; Section 5.1.3.2, p.69 &mdash; Section 5.1.4.2, p.70)</LI>
</UL>
</LI>
<LI><A HREF="https://www.ecma-international.org/publications/files/ECMA-ST/Ecma-130.pdf">ECMA standard ECMA-130</A>, edition 2 (June 1996) &mdash; ISO/IEC 10149:1995
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, XorOut, RefOut (Section 22.3.6, p.23)</LI>
</UL>
</LI>
<LI>Andreas Mueller <DFN>et al.</DFN> (15 May 2018), <A HREF="http://cdrdao.sourceforge.net/">cdrdao</A> 1.2.4, modules <CODE>cdrdao-1.2.4/dao/SubChannel.cc</CODE>, <CODE>cdrdao-1.2.4/dao/PQSubChannel16.cc</CODE>
<UL>
<LI><STRONG>III</STRONG> Code: C++</LI>
</UL>
</LI>
<LI>Stanislav Brabec (26 January 2018), <A HREF="http://www.penguin.cz/~utx/ftp/cddisasm/cddisasm-0.1.tar.gz">CD-disassembler 0.1</A> (gzipped tar archive), module <CODE>cddisasm-0.1/cddisasm.c</CODE>
<UL>
<LI><STRONG>III</STRONG> Code: C</LI>
</UL>
</LI>
<LI>Stanislav Brabec (17 January 2014), <A HREF="http://www.penguin.cz/~utx/cddisasm">CD-disassembler</A> homepage
<UL>
<LI><STRONG>IV</STRONG> 2 codewords
<UL>
<LI><CODE>01010100&#8203;00000000&#8203;02005A28</CODE></LI>
<LI><CODE>035D24E3&#8203;58020001&#8203;0034D0F2</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Created: 17 February 2017</LI>
<LI>Updated: 19 April 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-ibm-3740">CRC-16/IBM-3740</A></H3>
<P CLASS="attested"><CODE>width=16  poly=0x1021  init=0xffff  refin=false  refout=false  xorout=0x0000  check=0x29b1  residue=0x0000  name="CRC-16/IBM-3740"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-16-autosar"><STRONG>CRC-16/AUTOSAR</STRONG></A>, <A NAME="crc.cat.crc-16-ccitt-false"><STRONG>CRC-16/CCITT-FALSE</STRONG></A></LI>
<LI>An algorithm commonly misidentified as CRC-CCITT.  CRC-CCITT customarily refers to the LSB-first form of the algorithm in ITU-T Recommendation V.41 (see <A HREF="#crc.cat.crc-16-kermit">CRC-16/KERMIT</A>); its MSB-first counterpart is <A HREF="#crc.cat.crc-16-xmodem">CRC-16/XMODEM</A>.</LI>
<LI>AUTOSAR (30 November 2020), <A HREF="https://www.autosar.org/standards/classic-platform/">AUTOSAR Classic Platform</A> release R20-11, <A HREF="https://www.autosar.org/fileadmin/user_upload/standards/classic/20-11/AUTOSAR_SWS_CRCLibrary.pdf">Specification of CRC Routines</A>
<UL>
<LI><STRONG>I</STRONG> Comprehensive primer on CRC theory (Section 7.1, pp.18&ndash;21)</LI>
<LI><STRONG>I</STRONG> All parameters (Section 7.2.2.1, pp.24&ndash;5)</LI>
<LI><STRONG>IV</STRONG> 7 codewords (Section 7.2.2.1, p.25)
<UL>
<LI><CODE>00000000&#8203;84C0</CODE></LI>
<LI><CODE>F20183D3&#8203;74</CODE></LI>
<LI><CODE>0FAA0055&#8203;2023</CODE></LI>
<LI><CODE>00FF5511&#8203;B8F9</CODE></LI>
<LI><CODE>332255AA&#8203;BBCCDDEE&#8203;FFF53F</CODE></LI>
<LI><CODE>926B5507&#8203;45</CODE></LI>
<LI><CODE>FFFFFFFF&#8203;1D0F</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Western Digital Corporation (May 1980), <A HREF="http://bitsavers.informatik.uni-stuttgart.de/components/westernDigital/FD179X-02_Data_Sheet_May1980.pdf">FD 179X-02 datasheet</A> (courtesy of Bitsavers)
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init (p.5)</LI>
</UL>
<LI>Floppy disc formats: IBM 3740 (FM, e.g. Acorn DFS), ISO/IEC 8860-2:1987 (DOS&nbsp;720K),  ISO/IEC 9529-2:1989 (DOS&nbsp;1.4M)
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>Lammert Bies (August 2011), <A HREF="https://www.lammertbies.nl/comm/info/crc-calculation">CRC calculator</A>
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>Dr Ross N. Williams (19 August 1993), <A HREF="https://web.archive.org/web/20190527220400/http://www.ross.net/crc/download/crc_v3.txt">"A Painless Guide to CRC Error Detection Algorithms"</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>III</STRONG> All parameters (except Check, Residue)</LI>
</UL>
</LI>
<LI>Berndt M. Gammel (29 October 2006), <A HREF="https://www.matpack.de/">Matpack 1.9.1</A> class <CODE>MpCRC</CODE> documentation
<UL>
<LI><STRONG>III</STRONG> All parameters (except Residue)</LI>
</UL>
</LI>
<LI>Altera Corporation (April 1999), <A HREF="https://web.archive.org/web/20070221144121/http://www.msc.rl.ac.uk/europractice/vendors/dscrc.pdf">crc MegaCore Function Data Sheet</A>, version 2 (courtesy of the Internet Archive)
<UL>
<LI><STRONG>III</STRONG> All parameters (except Residue) (p.6)</LI>
</UL>
</LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 30 March 2005</LI>
<LI>Updated: 2 January 2021</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-ibm-sdlc">CRC-16/IBM-SDLC</A></H3>
<P CLASS="attested"><CODE>width=16  poly=0x1021  init=0xffff  refin=true  refout=true  xorout=0xffff  check=0x906e  residue=0xf0b8  name="CRC-16/IBM-SDLC"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-16-iso-hdlc"><STRONG>CRC-16/ISO-HDLC</STRONG></A>, <A NAME="crc.cat.crc-16-iso-iec-14443-3-b"><STRONG>CRC-16/ISO-IEC-14443-3-B</STRONG></A>, <A NAME="crc.cat.crc-16-x-25"><STRONG>CRC-16/X-25</STRONG></A>, <A NAME="crc.cat.crc-b"><STRONG>CRC-B</STRONG></A>, <A NAME="crc.cat.x-25"><STRONG>X-25</STRONG></A></LI>
<LI>HDLC is defined in ISO/IEC 13239.  CRC_B is defined in ISO/IEC 14443-3.</LI>
<LI><A HREF="https://www.itu.int/rec/T-REC-T.30/en">ITU-T Recommendation T.30</A> (September 2005)
<UL>
<LI><STRONG>I</STRONG> Definition: Residue; full mathematical description (Section 5.3.7, p.78)</LI>
</UL>
</LI>
<LI><A HREF="https://www.itu.int/rec/T-REC-V.42/en">ITU-T Recommendation V.42</A> (March 2002)
<UL>
<LI><STRONG>I</STRONG> Definition: Residue; full mathematical description (Section 8.1.1.6.1, p.17)</LI>
</UL>
</LI>
<LI><A HREF="https://www.itu.int/rec/T-REC-X.25/en">ITU-T Recommendation X.25</A> (October 1996)
<UL>
<LI><STRONG>I</STRONG> Definition: Residue; full mathematical description (Section 2.2.7.4, p.9)</LI>
<LI><STRONG>IV</STRONG> 4 codewords (Appendix I, p.145)
<UL>
<LI><CODE>033F5BEC</CODE></LI>
<LI><CODE>01738357</CODE></LI>
<LI><CODE>013FEBDF</CODE></LI>
<LI><CODE>03733364</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI><A HREF="https://tools.ietf.org/html/rfc1331">IETF RFC 1331</A> (May 1992)
<UL>
<LI><STRONG>I</STRONG> Code: C (Appendix B, pp.61&ndash;3)</LI>
</UL>
</LI>
<LI><A HREF="https://tools.ietf.org/html/rfc1662">IETF RFC 1662</A> (July 1994)
<UL>
<LI><STRONG>I</STRONG> Code: C (Appendix C.2, pp.19&ndash;21)</LI>
</UL>
</LI>
<LI>William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling (1992), <!-- A HREF="http://apps.nrbook.com/c/index.html" --><CITE>Numerical recipes in C: The art of scientific computing</CITE><!-- /A -->, 2nd ed., Cambridge University Press, ISBN 0-521-43108-5
<UL>
<LI><STRONG>III</STRONG> All parameters (except Check) (p.898)</LI>
<LI><STRONG>III</STRONG> Code: C (pp.900&ndash;1)</LI>
<LI><STRONG>IV</STRONG> 2 codewords (p.898)
<UL>
<LI><CODE>54D9E4</CODE> (source: <CODE>54261B</CODE>)</LI>
<LI><CODE>4361744D&#8203;6F757365&#8203;39383736&#8203;35343332&#8203;31910A</CODE> (source: <CODE>4361744D&#8203;6F757365&#8203;39383736&#8203;35343332&#8203;316EF5</CODE>)</LI>
</UL>
</LI>
</UL>
</LI>
<LI>Berndt M. Gammel (29 October 2006), <A HREF="https://www.matpack.de/">Matpack 1.9.1</A> class <CODE>MpCRC</CODE> documentation
<UL>
<LI><STRONG>III</STRONG> All parameters (except Residue)</LI>
</UL>
</LI>
<LI>iBiquity Digital Corporation (14 December 2016), <A HREF="https://www.nrscstandards.org/standards-and-guidelines/documents/standards/nrsc-5-d/reference-docs/1019s.pdf">HD Radio&trade; Air Interface Design Description: Advanced Application Services Transport</A>, rev. H (courtesy of National Radio Systems Committee)
<UL>
<LI><STRONG>IV</STRONG> 1 codeword (Figure 6-3, p.17)
<UL>
<LI><CODE>21005100&#8203;00494433&#8203;03000000&#8203;00004A54&#8203;49543200&#8203;00000D00&#8203;0000416E&#8203;616C6F67&#8203;20426C75&#8203;65735450&#8203;45310000&#8203;000D0000&#8203;004A2E20&#8203;512E2050&#8203;75626C69&#8203;6354414C&#8203;42000000&#8203;12000000&#8203;54686520&#8203;4C6F7374&#8203;20536573&#8203;73696F6E&#8203;73F527</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI><A HREF="http://wg8.de/wg8n1496_17n3613_Ballot_FCD14443-3.pdf">ISO/IEC FCD 14443-3</A> (24 November 2008)
<UL>
<LI><STRONG>IV</STRONG> 3 codewords (Annex B.2, p.50)
<UL>
<LI><CODE>000000CC&#8203;C6</CODE></LI>
<LI><CODE>0FAAFFFC&#8203;D1</CODE></LI>
<LI><CODE>0A123456&#8203;2CF6</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 10 September 2005</LI>
<LI>Updated: 2 January 2021</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-iso-iec-14443-3-a">CRC-16/ISO-IEC-14443-3-A</A></H3>
<P CLASS="attested"><CODE>width=16  poly=0x1021  init=0xc6c6  refin=true  refout=true  xorout=0x0000  check=0xbf05  residue=0x0000  name="CRC-16/ISO-IEC-14443-3-A"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-a"><STRONG>CRC-A</STRONG></A></LI>
<LI>Used in contactless IC cards.</LI>
<LI><A HREF="http://wg8.de/wg8n1496_17n3613_Ballot_FCD14443-3.pdf">ISO/IEC FCD 14443-3</A> (24 November 2008)
<UL>
<LI><STRONG>I</STRONG> Definition: Init, XorOut (Section 6.2.4, p.11)</LI>
<LI><STRONG>I</STRONG> Citation for rest of algorithm: ISO/IEC 13239 (see <A HREF="#crc.cat.crc-16-ibm-sdlc">CRC-16/IBM-SDLC</A>)</LI>
<LI><STRONG>IV</STRONG> 2 codewords (Annex B.1, p.49)
<UL>
<LI><CODE>0000A01E</CODE></LI>
<LI><CODE>123426CF</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Adam Laurie (31 August 2010), <A HREF="http://rfidiot.org/crc16.c" TYPE="text/x-csrc">crc16.c</A> (C source text)
<UL>
<LI><STRONG>III</STRONG> Code: C</LI>
</UL>
</LI>
<LI>Adam Laurie (31 August 2010), <A HREF="https://ridrix.wordpress.com/2009/09/19/mifare-desfire-communication-example/#comment-140">comment on a Ridrix's Blog post</A>
<UL>
<LI><STRONG>III</STRONG> Code: C</LI>
<LI><STRONG>IV</STRONG> 1 codeword
<UL>
<LI><CODE>AABBCCDD&#8203;EE001122&#8203;7B09</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Flavio D. Garcia, <DFN>et al.</DFN> (October 2008), <A HREF="https://www.sos.cs.ru.nl/applications/rfid/2008-esorics.pdf">Dismantling MIFARE Classic</A>, Proceedings of the Thirteenth European Symposium on Research in Computer Security (ESORICS 2008)
<UL>
<LI><STRONG>IV</STRONG> 6 codewords (Figure 2, p.100; Section 4.1, p.102, referencing ISO/IEC 14443; Figure 6, p.105)
<UL>
<LI><CODE>9370C2A8&#8203;2DF4B3BA&#8203;A3</CODE></LI>
<LI><CODE>08B6DD</CODE></LI>
<LI><CODE>6030764A</CODE></LI>
<LI><CODE>500057CD</CODE></LI>
<LI><CODE>93700000&#8203;0000009C&#8203;D9</CODE></LI>
<LI><CODE>6000F57B</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Flavio D. Garcia, <DFN>et al.</DFN> (October 2008), <A HREF="https://www.sos.cs.ru.nl/applications/rfid/2008-esorics-slides-updated.pdf">Dismantling MIFARE Classic</A>, slide presentation, ESORICS 2008 conference
<UL>
<LI><STRONG>IV</STRONG> 1 additional codeword (p.13)
<UL>
<LI><CODE>93701DFB&#8203;E03335D3&#8203;55</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 30 April 2011</LI>
<LI>Updated: 29 December 2021</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-kermit">CRC-16/KERMIT</A></H3>
<P CLASS="attested"><CODE>width=16  poly=0x1021  init=0x0000  refin=true  refout=true  xorout=0x0000  check=0x2189  residue=0x0000  name="CRC-16/KERMIT"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-16-ccitt"><STRONG>CRC-16/CCITT</STRONG></A>, <A NAME="crc.cat.crc-16-ccitt-true"><STRONG>CRC-16/CCITT-TRUE</STRONG></A>, <A NAME="crc.cat.crc-16-v-41-lsb"><STRONG>CRC-16/V-41-LSB</STRONG></A>, <A NAME="crc.cat.crc-ccitt"><STRONG>CRC-CCITT</STRONG></A>, <A NAME="crc.cat.kermit"><STRONG>KERMIT</STRONG></A></LI>
<LI>Press <DFN>et al.</DFN> identify the CCITT algorithm with the one implemented in Kermit.  V.41 is endianness-agnostic, referring only to bit sequences, but the CRC appears reflected when used with LSB-first modems.  Ironically, the unreflected form is used in <A HREF="#crc.cat.crc-16-xmodem">CRC-16/XMODEM</A>.</LI>
<LI>For the algorithm often misidentified as CCITT, see <A HREF="#crc.cat.crc-16-ibm-3740">CRC-16/IBM-3740</A>.</LI>
<LI><A HREF="https://www.itu.int/rec/T-REC-V.41/en">ITU-T Recommendation V.41</A> (November 1988)
<UL>
<LI><STRONG>I</STRONG> Definition: Residue; full mathematical description (Section 2, p.2)</LI>
<LI><STRONG>I</STRONG> Shift register diagrams (Appendix I, p.9)</LI>
</UL>
</LI>
<LI>Frank da Cruz (June 1986), <A HREF="http://www.columbia.edu/kermit/ftp/e/kproto.doc" TYPE="text/plain">Kermit Protocol Manual, Sixth Edition</A> (plain text)
<UL>
<LI><STRONG>I</STRONG> Full definition (except Check) (Section 6.3)</LI>
<LI><STRONG>I</STRONG> Pseudocode (Section 6.3)</LI>
</UL>
</LI>
<LI>Lammert Bies (August 2011), <A HREF="https://www.lammertbies.nl/comm/info/crc-calculation">CRC calculator</A>
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>Aviation Data Systems (Aust) Pty Ltd. (13 June 2006), <A HREF="https://web.archive.org/web/20120320092016/http://www.avdat.com.au/airground/acars_software.html">PC.ACARS-G</A> ACARS client (PATS presentation) (courtesy of the Internet Archive)
<UL>
<LI><STRONG>II</STRONG> Transcripts confirming implementation with 10 codewords
<UL>
<LI><CODE>43AED6C8&#8203;ADD65143&#8203;1551B031&#8203;02D332B9&#8203;C1D65131&#8203;3732B583&#8203;F303</CODE></LI>
<LI><CODE>6DAEB9CD&#8203;ADCD524F&#8203;15C1C154&#8203;022FCD45&#8203;4C43C1D9&#8203;C1AEC154&#8203;31AEB9CD&#8203;ADCD524F&#8203;32B0B934&#8203;46C2C134&#8203;43B0B3B9&#8203;B9468348&#8203;61</CODE></LI>
<LI><CODE>CDAEB9CD&#8203;ADCD524F&#8203;54DF7F38&#8203;02D33231&#8203;C1CDC8B0&#8203;31343883&#8203;61A7</CODE></LI>
<LI><CODE>6D808080&#8203;80808080&#8203;15D35180&#8203;02B0B058&#8203;D3838236</CODE></LI>
<LI><CODE>CDAEB9CD&#8203;ADCD524F&#8203;15C2C1B9&#8203;024CB032&#8203;C1CDC8B0&#8203;3134382F&#8203;CD454C43&#8203;C1D9C1AE&#8203;C15431AE&#8203;B9CDADCD&#8203;524FC1B0&#8203;B9B53132&#8203;3443B3C4&#8203;B9B0B3C2&#8203;C1B53131&#8203;C2B9B0B0&#8203;C143B534&#8203;37313443&#8203;B0C437C1&#8203;34B6B543&#8203;34C1C432&#8203;B6B9B5B5&#8203;C1434343&#8203;3445B9C1&#8203;3831B543&#8203;38313234&#8203;3446C131&#8203;B332B0B9&#8203;34B9B0B3&#8203;B3C1B045&#8203;4534C438&#8203;374643B3&#8203;834483</CODE></LI>
<LI><CODE>6DAEB9CD&#8203;ADCD524F&#8203;B9DF7FD5&#8203;8391C6</CODE></LI>
<LI><CODE>43AED6C8&#8203;ADDA5843&#8203;D50DD0C1&#8203;524954D9&#8203;20BF8397&#8203;AC</CODE></LI>
<LI><CODE>43AED6C8&#8203;ADDA5843&#8203;15C831BC&#8203;0DD0C152&#8203;4954D920&#8203;BF8302D5</CODE></LI>
<LI><CODE>32AED6C8&#8203;ADDA58C2&#8203;15383137&#8203;02CD31B3&#8203;C15146B0&#8203;34B3B90D&#8203;8ACDD6C1&#8203;0D8A5146&#8203;C1B034B3&#8203;B92F31B0&#8203;AED6C8DA&#8203;58C2AECD&#8203;454C200D&#8203;8AC1C1B0&#8203;B5313720&#8203;20202020&#8203;83751B</CODE></LI>
<LI><CODE>6DAEB9D6&#8203;ADD3CD57&#8203;B5DF7F4A&#8203;839BC6</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Andrew Richardson (17 March 2005), <A HREF="https://books.google.com/books?id=yN5lve5L4vwC&amp;pg=PA223&amp;source=gbs_selected_pages&amp;cad=2"><CITE>WCDMA Design Handbook</CITE></A>, Cambridge University Press, ISBN 0-521-82815-5 (embedded content)
<UL>
<LI><STRONG>III</STRONG> Definition: Width, Poly, Residue (Section 7.1.3, Table 7.3, p.223)</LI>
<LI><STRONG>III</STRONG> Shift register diagram (Figure 7.4, p.223)</LI>
</UL>
</LI>
<LI>William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling (1992), <!-- A HREF="http://apps.nrbook.com/c/index.html" --><CITE>Numerical recipes in C: The art of scientific computing</CITE><!-- /A -->, 2nd ed., Cambridge University Press, ISBN 0-521-43108-5
<UL>
<LI><STRONG>III</STRONG> All parameters (except Check) (p.898)</LI>
<LI><STRONG>III</STRONG> Code: C (pp.900&ndash;1)</LI>
<LI><STRONG>IV</STRONG> 2 codewords (p.898)
<UL>
<LI><CODE>54A114</CODE></LI>
<LI><CODE>4361744D&#8203;6F757365&#8203;39383736&#8203;35343332&#8203;318DC2</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Atmel Corporation (30 March 2015), <A HREF="https://www.mcselec.com/pub/an/Atmel-9114-ATAN0086-Using-ATA5577-in-Animal-Identification-Application_Application-Note.pdf">Application Note ATAN0086: Using Atmel ATA5577 in Animal Identification Application according to ISO11784/85</A> (courtesy of MCS Electronics)
<UL>
<LI><STRONG>IV</STRONG> 2 codewords (Figure 2-2, p.5; Figure 3-1, p.6)
<UL>
<LI><CODE>10000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000011&#8203;10011111&#8203;00000000&#8203;00000001&#8203;00100010&#8203;01110100</CODE></LI>
<LI><CODE>10001110&#8203;11000100&#8203;11000110&#8203;00000010&#8203;00000011&#8203;10011111&#8203;00000000&#8203;00000001&#8203;01111100&#8203;11100100</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 10 September 2005</LI>
<LI>Updated: 23 December 2021</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-lj1200">CRC-16/LJ1200</A></H3>
<P CLASS="third-party"><CODE>width=16  poly=0x6f63  init=0x0000  refin=false  refout=false  xorout=0x0000  check=0xbdf4  residue=0x0000  name="CRC-16/LJ1200"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="third-party">third-party</SPAN></LI>
<LI>Reference from named polynomial in Prof. Koopman's <A HREF="https://users.ece.cmu.edu/~koopman/crc/notes.html">CRC Polynomial Zoo</A>.</LI>
<LI>Used in the LoJack vehicle tracking system.</LI>
<LI>Dennis Sheirer (24 January 2015), <A HREF="https://github.com/DSheirer/sdrtrunk">SDRTrunk</A> module <A HREF="https://github.com/DSheirer/sdrtrunk/blob/master/src/main/java/io/github/dsheirer/edac/CRCLJ.java"><CODE>sdrtrunk/src/main/java/io/github/dsheirer/edac/CRCLJ.java</CODE></A>
<UL>
<LI><STRONG>III</STRONG> Code: Java</LI>
<LI><STRONG>III</STRONG> Worked example (as generator matrix)</LI>
</UL>
</LI>
<LI>Created: 20 February 2016</LI>
<LI>Updated: 6 June 2018</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-maxim-dow">CRC-16/MAXIM-DOW</A></H3>
<P CLASS="attested"><CODE>width=16  poly=0x8005  init=0x0000  refin=true  refout=true  xorout=0xffff  check=0x44c2  residue=0xb001  name="CRC-16/MAXIM-DOW"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-16-maxim"><STRONG>CRC-16/MAXIM</STRONG></A></LI>
<LI>Maxim Integrated (8 August 2012), <A HREF="https://datasheets.maximintegrated.com/en/ds/DS1921G.pdf">DS1921G Datasheet</A>
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init, XorOut (p.32)</LI>
<LI><STRONG>I</STRONG> Shift register diagram (p.34)</LI>
</UL>
<LI>Maxim Integrated (22 August 2012), <A HREF="https://pdfserv.maximintegrated.com/en/an/AN27.pdf">Application Note 27</A> (PDF, <!-- A HREF="https://www.maximintegrated.com/en/app-notes/index.mvp/id/27" --><A HREF="https://www.maximintegrated.com/en/design/technical-documents/app-notes/2/27.html">HTML</A>)
<UL>
<LI><STRONG>I</STRONG> Definition: Init (p.10)</LI>
<LI><STRONG>I</STRONG> Shift register diagram (p.11)</LI>
<LI><STRONG>I</STRONG> Code: 8051 assembler (pp.12&ndash;16)</LI>
<LI><STRONG>I</STRONG> Worked example (p.15)</LI>
</UL>
</LI>
<LI>Created: 26 April 2009</LI>
<LI>Updated: 28 December 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-mcrf4xx">CRC-16/MCRF4XX</A></H3>
<P CLASS="attested"><CODE>width=16  poly=0x1021  init=0xffff  refin=true  refout=true  xorout=0x0000  check=0x6f91  residue=0x0000  name="CRC-16/MCRF4XX"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Youbok Lee, PhD, Microchip Technology Inc. (16 July 2001), <A HREF="https://ww1.microchip.com/downloads/en/AppNotes/00752a.pdf">"CRC Algorithm for MCRF45X Read/Write Device"</A>
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly (reverse form) (p.1)</LI>
<LI><STRONG>I</STRONG> Shift register diagram (p.1)</LI>
<LI><STRONG>I</STRONG> Flowchart (p.2)</LI>
<LI><STRONG>I</STRONG> Worked example (p.3)</LI>
<LI><STRONG>I</STRONG> Code: C (pp.4&ndash;5)</LI>
</UL>
<LI>Piers Desrochers, PICList MassMind, <A HREF="http://www.piclist.com/techref/method/error/quickcrc16.htm">"A quick guide to CRC"</A>
<UL>
<LI><STRONG>III</STRONG> Description</LI>
<LI><STRONG>III</STRONG> Worked example</LI>
</UL>
</LI>
<LI>William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling (1992), <!-- A HREF="http://apps.nrbook.com/c/index.html" --><CITE>Numerical recipes in C: The art of scientific computing</CITE><!-- /A -->, 2nd ed., Cambridge University Press, ISBN 0-521-43108-5
<UL>
<LI><STRONG>III</STRONG> All parameters (except Check) (p.898)</LI>
<LI><STRONG>III</STRONG> Code: C (pp.900&ndash;1)</LI>
<LI><STRONG>IV</STRONG> 2 codewords (p.898)
<UL>
<LI><CODE>54261B</CODE></LI>
<LI><CODE>4361744D&#8203;6F757365&#8203;39383736&#8203;35343332&#8203;316EF5</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>"kilobravo" (16 June 2008), Computer Interfacing Forum <A HREF="https://web.archive.org/web/20181116143720/https://www.lammertbies.nl/forum/viewtopic.php?t=578">topic 578</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>IV</STRONG> 2 codewords
<UL>
<LI><CODE>3A7164D9</CODE></LI>
<LI><CODE>3A916A3E</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 18 January 2008</LI>
<LI>Updated: 2 January 2021</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-modbus">CRC-16/MODBUS</A></H3>
<P CLASS="attested"><CODE>width=16  poly=0x8005  init=0xffff  refin=true  refout=true  xorout=0x0000  check=0x4b37  residue=0x0000  name="CRC-16/MODBUS"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.modbus"><STRONG>MODBUS</STRONG></A></LI>
<LI>CRC presented low byte first.</LI>
<LI>MODICON Inc. (June 1996), <A HREF="https://modbus.org/docs/PI_MBUS_300.pdf">Modbus Protocol Reference Guide</A>, Rev. J
<UL>
<LI><STRONG>I</STRONG> Algorithm (pp.112&ndash;3)</LI>
<LI><STRONG>I</STRONG> Code: C (pp.113&ndash;5)</LI>
</UL>
</LI>
<LI>Lammert Bies (August 2011), <A HREF="https://www.lammertbies.nl/comm/info/crc-calculation">CRC calculator</A>
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>Ond&#345;ej Karas (28 February 2006), <!-- A HREF="http://bastleni.edev.cz/clanky/software/93-mbus-crc-kalkulator.html" -->CRC calculator<!-- /A -->
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>Panu-Kristian Poiksalo (28 February 2003), Control.com <!-- A HREF="https://control.com/thread/1026149685" --><A HREF="https://control.com/forums/threads/modbus-source-code-in-pascal-or-c.7576/">forum post</A>
<UL>
<LI><STRONG>III</STRONG> Code: ObjectPascal</LI>
</UL>
</LI>
<LI>Created: 27 February 2007</LI>
<LI>Updated: 2 January 2021</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-nrsc-5">CRC-16/NRSC-5</A></H3>
<P CLASS="attested"><CODE>width=16  poly=0x080b  init=0xffff  refin=true  refout=true  xorout=0x0000  check=0xa066  residue=0x0000  name="CRC-16/NRSC-5"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Implemented in standard NRSC-5-D as a 16-bit CRC truncated (punctured) to 12 bits.  The upper 4 bits, the last to leave the shift register, are discarded.</LI>
<LI>Init = 0xFFFF implements the algorithm prescribed by iBiquity on 80-bit PDUs. Substitute Init = 0x39C8 if skipping 8 leading zeroes, Init = 0x849D if skipping all 12 leading zeroes and processing only the 68 message bits.  In any case Init = 0x0000, XorOut = 0x4955 is equivalent.</LI>
<LI>iBiquity Digital Corporation (23 August 2011), <A HREF="https://www.nrscstandards.org/standards-and-guidelines/documents/standards/nrsc-5-d/reference-docs/1020s.pdf">HD Radio&trade; Air Interface Design Description: Station Information Service Transport</A>, rev. J (courtesy of National Radio Systems Committee)
<UL>
<LI><STRONG>I</STRONG> Definition: Poly (mantissa only); method (Section 4.10, p.38)</LI>
<LI>Incorporated by normative reference into National Radio Systems Committee standard <A HREF="https://www.nrscstandards.org/standards-and-guidelines/documents/standards/nrsc-5-d/nrsc-5-d.asp">NRSC-5-D</A>.</LI>
</UL>
</LI>
<LI>Andrew Wesie (9 June 2017), <A HREF="https://github.com/theori-io/nrsc5">NRSC-5 receiver for rtl-sdr</A>, file <A HREF="https://github.com/theori-io/nrsc5/raw/master/support/sample.xz"><CODE>nrsc5/support/sample.xz</CODE></A> (XZ compressed raw radio recording, 22 MB)
<UL>
<LI><STRONG>II</STRONG> Recording confirming implementation with 28 codewords (4 bits extrapolated; selection)
<UL>
<LI><CODE>000048BB&#8203;ABA0329A&#8203;0A0A2671</CODE> (source: <CODE>00001010&#8203;00001010&#8203;10011010&#8203;00110010&#8203;10100000&#8203;10101011&#8203;10111011&#8203;01001000&#8203;00000001&#8203;00100110</CODE>)</LI>
<LI><CODE>0030C8D3&#8203;D37379D9&#8203;1E0A7B40</CODE> (source: <CODE>00001010&#8203;00011110&#8203;11011001&#8203;01111001&#8203;01110011&#8203;11010011&#8203;11010011&#8203;11001000&#8203;00110000&#8203;01111011</CODE>)</LI>
<LI><CODE>0010C097&#8203;A920F31B&#8203;240A2D1D</CODE> (source: <CODE>00001010&#8203;00100100&#8203;00011011&#8203;11110011&#8203;00100000&#8203;10101001&#8203;10010111&#8203;11000000&#8203;00011101&#8203;00101101</CODE>)</LI>
<LI><CODE>00200882&#8203;E861D03C&#8203;3C0AEB71</CODE> (source: <CODE>00001010&#8203;00111100&#8203;00111100&#8203;11010000&#8203;01100001&#8203;11101000&#8203;10000010&#8203;00001000&#8203;00100001&#8203;11101011</CODE>)</LI>
<LI><CODE>00100000&#8203;DC69FABC&#8203;4E0AB6CD</CODE> (source: <CODE>00001010&#8203;01001110&#8203;10111100&#8203;11111010&#8203;01101001&#8203;11011100&#8203;00000000&#8203;00000000&#8203;00011101&#8203;10110110</CODE>)</LI>
<LI><CODE>00001500&#8203;4000809E&#8203;54456AC7</CODE> (source: <CODE>01000101&#8203;01010100&#8203;10011110&#8203;10000000&#8203;00000000&#8203;01000000&#8203;00000000&#8203;00010101&#8203;00000111&#8203;01101010</CODE>)</LI>
<LI><CODE>00200008&#8203;FA7E849E&#8203;54454B82</CODE> (source: <CODE>01000101&#8203;01010100&#8203;10011110&#8203;10000100&#8203;01111110&#8203;11111010&#8203;00001000&#8203;00000000&#8203;00100010&#8203;01001011</CODE>)</LI>
<LI><CODE>00100074&#8203;4280849E&#8203;54457C5C</CODE> (source: <CODE>01000101&#8203;01010100&#8203;10011110&#8203;10000100&#8203;10000000&#8203;01000010&#8203;01110100&#8203;00000000&#8203;00011100&#8203;01111100</CODE>)</LI>
</UL>
</LI>
</UL>
</LI>
<LI>Andrew Wesie, Clayton Smith <DFN>et al.</DFN> (17 April 2018), <A HREF="https://github.com/theori-io/nrsc5">NRSC-5 receiver for rtl-sdr</A>, module <A HREF="https://github.com/theori-io/nrsc5/blob/master/src/pids.c"><CODE>nrsc5/src/pids.c</CODE></A>
<UL>
<LI><STRONG>III</STRONG> Code: C</LI>
</UL>
</LI>
<LI>Created: 16 November 2018</LI>
<LI>Updated: 20 March 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-opensafety-a">CRC-16/OPENSAFETY-A</A></H3>
<P CLASS="attested"><CODE>width=16  poly=0x5935  init=0x0000  refin=false  refout=false  xorout=0x0000  check=0x5d38  residue=0x0000  name="CRC-16/OPENSAFETY-A"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>The single codeword is supported by the codewords confirming <A HREF="#crc.cat.crc-8-opensafety">CRC-8/OPENSAFETY</A>, defined identically apart from Width, Poly in the same standard.</LI>
<LI>Ethernet POWERLINK Standardisation Group (16 October 2015), <A HREF="https://www.ethernet-powerlink.org/fileadmin/user_upload/Dokumente/Downloads/TECHNICAL_DOCUMENTS/EPSG_WDP_304_V-1-5-0__3_.pdf">OpenSAFETY Safety Profile Specification Working Draft Proposal</A>, version 1.5.0
<UL>
<LI><STRONG>I</STRONG> Full description (Section 5.1.2.6, pp.44&ndash;5)</LI>
<LI><STRONG>I</STRONG> Error detection capability (Section 8.1, p.183)</LI>
<LI><STRONG>I</STRONG> Code: C (Appendix 1, pp.192&ndash;5)</LI>
<LI><STRONG>IV</STRONG> 1 codeword (Appendix 1, pp.192&ndash;3)
<UL>
<LI><CODE>23C80834&#8203;11223344&#8203;55667788&#8203;0374</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Prof. Philip Koopman, Tridib Chakravarty (June 2004), <A HREF="https://users.ece.cmu.edu/~koopman/roses/dsn04/koopman04_crc_poly_embedded.pdf"><CITE>Cyclic Redundancy Code (CRC) Polynomial Selection for Embedded Networks</CITE></A>
<UL>
<LI><STRONG>III</STRONG> Assessment of polynomial performance (as <CODE>0xAC9A</CODE> or C<SUB>3</SUB>)</LI>
</UL>
</LI>
<LI>Created: 22 July 2016</LI>
<LI>Updated: 5 June 2018</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-opensafety-b">CRC-16/OPENSAFETY-B</A></H3>
<P CLASS="attested"><CODE>width=16  poly=0x755b  init=0x0000  refin=false  refout=false  xorout=0x0000  check=0x20fe  residue=0x0000  name="CRC-16/OPENSAFETY-B"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>The single codeword is supported by the codewords confirming <A HREF="#crc.cat.crc-8-opensafety">CRC-8/OPENSAFETY</A>, defined identically apart from Width, Poly in the same standard.</LI>
<LI>Ethernet POWERLINK Standardisation Group (16 October 2015), <A HREF="https://www.ethernet-powerlink.org/fileadmin/user_upload/Dokumente/Downloads/TECHNICAL_DOCUMENTS/EPSG_WDP_304_V-1-5-0__3_.pdf">OpenSAFETY Safety Profile Specification Working Draft Proposal</A>, version 1.5.0
<UL>
<LI><STRONG>I</STRONG> Full description (Section 5.1.2.6, pp.44&ndash;5)</LI>
<LI><STRONG>I</STRONG> Error detection capability (Section 8.1, p.183)</LI>
<LI><STRONG>I</STRONG> Code: C (Appendix 1, pp.192&ndash;5)</LI>
<LI><STRONG>IV</STRONG> 1 codeword (Appendix 1, pp.192&ndash;3)
<UL>
<LI><CODE>22C81256&#8203;30112233&#8203;44556677&#8203;887031</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Prof. Philip Koopman, Tridib Chakravarty (June 2004), <A HREF="https://users.ece.cmu.edu/~koopman/roses/dsn04/koopman04_crc_poly_embedded.pdf"><CITE>Cyclic Redundancy Code (CRC) Polynomial Selection for Embedded Networks</CITE></A>
<UL>
<LI><STRONG>III</STRONG> Assessment of polynomial performance (as <CODE>0xBAAD</CODE>)</LI>
</UL>
</LI>
<LI>Created: 22 July 2016</LI>
<LI>Updated: 5 June 2018</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-profibus">CRC-16/PROFIBUS</A></H3>
<P CLASS="attested"><CODE>width=16  poly=0x1dcf  init=0xffff  refin=false  refout=false  xorout=0xffff  check=0xa819  residue=0xe394  name="CRC-16/PROFIBUS"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-16-iec-61158-2"><STRONG>CRC-16/IEC-61158-2</STRONG></A></LI>
<LI>PROFIBUS International (March 1998), <A HREF="https://web.archive.org/web/20081116195826/https://www.kuebler.com/PDFs/Feldbus_Multiturn/specification_DP.pdf">PROFIBUS Specification, Normative Parts</A>, Edition 1.0, Part 9 (courtesy of the Internet Archive) &mdash; <A HREF="http://read.pudn.com/downloads93/doc/project/362720/profibus_protocol_in_English_and_Chinese/PROFIBUS%20%E5%8D%8F%E8%AE%AE%E8%A7%84%E8%8C%83%EF%BC%88%E4%B8%AD%E6%96%87%EF%BC%89/PROFIBUS%20%E8%A7%84%E8%8C%83(9)-%E7%94%A8%E4%BA%8E%E8%BF%87%E7%A8%8B%E8%87%AA%E5%8A%A8%E5%8C%96%E7%9A%84%E7%89%A9%E7%90%86%E5%B1%82%E5%92%8C%E6%95%B0%E6%8D%AE%E9%93%BE%E8%B7%AF%E5%B1%82.pdf" LANG="zh" HREFLANG="zh">PROFIBUS &#35268;&#33539;&#65293;&#26631;&#20934;&#37096;&#20998;&#65293;&#31532;&#20061;&#37096;&#20998;</A> (in Chinese; courtesy of PUDN)
<UL>
<LI><STRONG>I</STRONG> Transmission order, implying RefIn and RefOut (Part 9 Section 8.5.1, p.902)</LI>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init, Residue (Part 9 Section 8.8.4, pp.905&ndash;7)</LI>
<LI><STRONG>I</STRONG> Properties of polynomial (Part 9 Section 8.8.4, p.906)</LI>
</UL>
</LI>
<LI>"Chetanya" (17 November 2011), Computer Interfacing Forum <A HREF="https://web.archive.org/web/20181116160912/https://www.lammertbies.nl/forum/viewtopic.php?t=1752">topic 1752</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>III</STRONG> Definition: Width, Poly, Init</LI>
<LI><STRONG>IV</STRONG> 5 codewords
<UL>
<LI><CODE>34AF21</CODE></LI>
<LI><CODE>011057E0</CODE></LI>
<LI><CODE>321000E3&#8203;7E82</CODE></LI>
<LI><CODE>331000E3&#8203;2A0F</CODE></LI>
<LI><CODE>26110100&#8203;00080A10&#8203;9739</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 5 July 2016</LI>
<LI>Updated: 28 December 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-riello">CRC-16/RIELLO</A></H3>
<P CLASS="third-party"><CODE>width=16  poly=0x1021  init=0xb2aa  refin=true  refout=true  xorout=0x0000  check=0x63d0  residue=0x0000  name="CRC-16/RIELLO"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="third-party">third-party</SPAN></LI>
<LI>Reported for a Riello Dialog UPS.</LI>
<LI>"Snamprogetti" (17 April 2009), Computer Interfacing Forum <A HREF="https://web.archive.org/web/20181116155838/https://www.lammertbies.nl/forum/viewtopic.php?t=1305">topic 1305</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>III</STRONG> Definition: Width, Poly, Init</LI>
<LI><STRONG>III</STRONG> Algorithm reported to be <A HREF="#crc.cat.crc-16-kermit">CRC-CCITT</A>, implying RefIn and RefOut.</LI>
<LI><STRONG>IV</STRONG> 1 codeword
<UL>
<LI><CODE>20225253&#8203;30308790</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Created: 18 April 2009</LI>
<LI>Updated: 28 December 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-spi-fujitsu">CRC-16/SPI-FUJITSU</A></H3>
<P CLASS="attested"><CODE>width=16  poly=0x1021  init=0x1d0f  refin=false  refout=false  xorout=0x0000  check=0xe5cc  residue=0x0000  name="CRC-16/SPI-FUJITSU"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-16-aug-ccitt"><STRONG>CRC-16/AUG-CCITT</STRONG></A></LI>
<LI>Init value is equivalent to an augment of <CODE>0xFFFF</CODE> prepended to the message.</LI>
<LI>Fujitsu Semiconductor (10 October 2007), <A HREF="https://www.fujitsu.com/downloads/MICRO/fma/pdfmcu/um-mb88121-am15-11201-1e.pdf">FlexRay ASSP MB88121B User's Manual</A>
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init (Section 2.5.1, p.153)</LI>
</UL>
</LI>
<LI>Lammert Bies (August 2011), <A HREF="https://www.lammertbies.nl/comm/info/crc-calculation">CRC calculator</A>
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>Berndt M. Gammel (29 October 2006), <A HREF="https://www.matpack.de/">Matpack 1.9.1</A> class <CODE>MpCRC</CODE> documentation
<UL>
<LI><STRONG>III</STRONG> All parameters (except Residue)</LI>
</UL>
</LI>
<LI>Created: 30 October 2007</LI>
<LI>Updated: 28 December 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-t10-dif">CRC-16/T10-DIF</A></H3>
<P CLASS="attested"><CODE>width=16  poly=0x8bb7  init=0x0000  refin=false  refout=false  xorout=0x0000  check=0xd0db  residue=0x0000  name="CRC-16/T10-DIF"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Used in the SCSI Data Integrity Field.  XorOut = <CODE>0xBADB</CODE> is proposed to mark known bad blocks.</LI>
<LI>Gerald Houlder, INCITS Technical Committee T10 (2 May 2003), <A HREF="https://www.t10.org/ftp/t10/document.03/03-111r0.pdf">End-to-End Data Protection Proposal</A>
<UL>
<LI><STRONG>I</STRONG> Definition: Poly, Init (p.6)</LI>
<LI><STRONG>I</STRONG> Shift register diagram (p.18)</LI>
</UL>
</LI>
<LI>George O. Penokie, INCITS Technical Committee T10 (22 October 2003), <A HREF="https://www.t10.org/ftp/t10/document.03/03-176r9.pdf">Simplified End-to-End Data Protection</A>
<UL>
<LI><STRONG>I</STRONG> Definition: Residue; full mathematical description (Sections 4.5.3&ndash;4.5.4, pp.4&ndash;5)</LI>
<LI><STRONG>IV</STRONG> 5 codewords (Section 4.5.6, p.6)
<UL>
<LI><CODE>00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;0000</CODE></LI>
<LI><CODE>FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;A293</CODE></LI>
<LI><CODE>00010203&#8203;04050607&#8203;08090A0B&#8203;0C0D0E0F&#8203;10111213&#8203;14151617&#8203;18191A1B&#8203;1C1D1E1F&#8203;0224</CODE></LI>
<LI><CODE>FFFF0000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;21B8</CODE></LI>
<LI><CODE>FFFEFDFC&#8203;FBFAF9F8&#8203;F7F6F5F4&#8203;F3F2F1F0&#8203;EFEEEDEC&#8203;EBEAE9E8&#8203;E7E6E5E4&#8203;E3E2E1E0&#8203;A0B7</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Ralph Weber, John Lohmeyer, INCITS Technical Committee T10 (20 August 2003), <A HREF="https://www.t10.org/ftp/t10/document.03/03-281r0.pdf">Minutes of Data Integrity Study Group - Aug 19-20, 2003</A>
<UL>
<LI><STRONG>I</STRONG> Definition: Init, XorOut (Item 4.6, p.3)</LI>
<LI><STRONG>I</STRONG> Acceptance of previous two documents (Item 4.7, p.3)</LI>
</UL>
</LI>
<LI>Pat Thaler, INCITS Technical Committee T10 (28 August 2003), <A HREF="https://www.t10.org/ftp/t10/document.03/03-290r0.pdf">16-bit CRC polynomial selection</A>
<UL>
<LI><STRONG>I</STRONG> Properties of polynomial</LI>
</UL>
</LI>
<LI>Martin K. Petersen, Oracle Corporation (2007); Tim Chen, Intel Corporation (2013), Linux module <A HREF="https://stuff.mit.edu/afs/sipb/contrib/linux/crypto/crct10dif_common.c"><CODE>crypto/crct10dif_common.c</CODE></A>
<UL>
<LI><STRONG>III</STRONG> Code: C</LI>
</UL>
</LI>
<LI>Created: 29 September 2009</LI>
<LI>Updated: 2 January 2021</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-teledisk">CRC-16/TELEDISK</A></H3>
<P CLASS="confirmed"><CODE>width=16  poly=0xa097  init=0x0000  refin=false  refout=false  xorout=0x0000  check=0x0fb3  residue=0x0000  name="CRC-16/TELEDISK"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="confirmed">confirmed</SPAN></LI>
<LI>Used in the Teledisk disc archive format.  DECnet and <A HREF="http://mdfs.net/Archive/info-cpm/1985/10/09/064929.htm">CRCK</A> allegedly use a Sick-type algorithm but with this polynomial.</LI>
<LI>Will Kranz (8 December 2002), <!-- A HREF="http://www.willsworks.net/file-format/teledisk" --><A HREF="https://github.com/jmechnich/wteledsk">wteledsk 1.01</A>
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>Will Kranz (8 December 2002), <!-- A HREF="http://www.willsworks.net/file-format/teledisk" --><A HREF="https://github.com/jmechnich/wteledsk">wteledsk 1.01</A> module <A HREF="https://github.com/jmechnich/wteledsk/blob/master/src/tdcrc.c"><CODE>src/tdcrc.c</CODE></A>
<UL>
<LI><STRONG>III</STRONG> Code: C</LI>
</UL>
<LI>Created: 10 December 2009</LI>
<LI>Updated: 6 June 2018</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-tms37157">CRC-16/TMS37157</A></H3>
<P CLASS="attested"><CODE>width=16  poly=0x1021  init=0x89ec  refin=true  refout=true  xorout=0x0000  check=0x26b1  residue=0x0000  name="CRC-16/TMS37157"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Texas Instruments, Inc. (November 2009), <A HREF="https://www.ti.com/lit/ds/symlink/tms37157.pdf">TMS37157 datasheet</A>
<UL>
<LI><STRONG>I</STRONG> Full definition (except Check) (pp.39&ndash;40)</LI>
<LI><STRONG>I</STRONG> Shift register diagram (Figure 51, p.39)</LI>
<LI><STRONG>I</STRONG> Flowchart (Figure 52, p.40)</LI>
</UL>
</LI>
<LI>"harper", "jacknad" (November 2010&ndash;January 2011), StackOverflow <A HREF="https://stackoverflow.com/questions/4286447/how-to-calculate-the-crc-in-rfid-protocol">submitted question and answers</A>
<UL>
<LI><STRONG>III</STRONG> Definition: Init (reverse form) ("harper")
<LI><STRONG>III</STRONG> Code: C ("jacknad")</LI>
<LI><STRONG>IV</STRONG> 3 codewords ("harper")
<UL>
<LI><CODE>0225A6</CODE></LI>
<LI><CODE>02400000&#8203;0000A060&#8203;E7</CODE></LI>
<LI><CODE>02410000&#8203;0000A46F&#8203;A5</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>"Petri" (4 May 2010), Texas Instruments, Inc.  E2E&trade; Community <!-- A HREF="https://e2e.ti.com/support/wireless_connectivity/low_power_rf_tools/f/155/t/46777" --><A HREF="https://e2e.ti.com/support/wireless-connectivity/other-wireless/f/667/t/46777">forum post</A>
<UL>
<LI><STRONG>IV</STRONG> 1 codeword
<UL>
<LI><CODE>01AAAAAA&#8203;AAAADC25&#8203;AB</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 17 April 2011</LI>
<LI>Updated: 28 December 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-umts">CRC-16/UMTS</A></H3>
<P CLASS="attested"><CODE>width=16  poly=0x8005  init=0x0000  refin=false  refout=false  xorout=0x0000  check=0xfee8  residue=0x0000  name="CRC-16/UMTS"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-16-buypass"><STRONG>CRC-16/BUYPASS</STRONG></A>, <A NAME="crc.cat.crc-16-verifone"><STRONG>CRC-16/VERIFONE</STRONG></A></LI>
<LI>Reported for the multi-threaded portion of the Buypass transaction processing network.</LI>
<LI>Verifone, Inc. (May 1995), <A HREF="https://web.archive.org/web/20120603221525/http://www.verifone.com/PDF/guides/tcl_ref.pdf">TCLOAD Reference Manual</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>I</STRONG> Definition: Poly.  CRC byte order, implying RefIn and RefOut (Section 4, p.4-1)</LI>
</UL>
</LI>
<LI>3rd Generation Partnership Project (3GPP) <A HREF="https://www.3gpp.org/ftp/Specs/2017-03/Rel-14/25_series/25427-e00.zip">TS 25.427</A> version 14.0.0 (March 2017) (zipped MS Word document) &mdash; ETSI <A HREF="https://www.etsi.org/deliver/etsi_ts/125400_125499/125427/14.00.00_60/ts_125427v140000p.pdf">TS 125 427</A> version 14.0.0 (April 2017)
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init, XorOut (Section 7.2.1, p.40)</LI>
<LI><STRONG>I</STRONG> Definition: RefIn, RefOut (Section 6.1.1, p.20; Section 7.2.1.1, p.40)</LI>
</UL>
</LI>
<LI>PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>Emil Lenchak, Texas Instruments, Inc. (June 2018), <A HREF="https://www.ti.com/lit/an/slaa221a/slaa221a.pdf">CRC Implementation With MSP430</A>
<UL>
<LI><STRONG>III</STRONG> All parameters (except Residue) (Section 4.6, p.6)</LI>
</UL>
</LI>
<LI>Thomas Schmidt, Microchip Technology Inc. (20 May 2000), <A HREF="https://ww1.microchip.com/downloads/en/AppNotes/00730a.pdf">"CRC Generating and Checking"</A>
<UL>
<LI><STRONG>III</STRONG> Description (p.4)</LI>
<LI><STRONG>III</STRONG> Shift register diagram (Figure 1, p.3)</LI>
<LI><STRONG>III</STRONG> Code: 16C54B assembler (Appendix A, pp.7&ndash;11; Appendix B, pp.12&ndash;22)</LI>
</UL>
</LI>
<LI>Michael Niedermayer, Aur&eacute;lien Jacobs <DFN>et al.</DFN> (11 July 2020), <A HREF="https://ffmpeg.org/releases/ffmpeg-4.3.1.tar.xz">FFmpeg 4.3.1</A> (XZ compressed tarfile), module <A HREF="https://github.com/FFmpeg/FFmpeg/blob/master/libavutil/tests/crc.c"><CODE>ffmpeg-4.3.1/libavutil/tests/crc.c</CODE></A>
<UL>
<LI><STRONG>IV</STRONG> 1 codeword
<UL>
<LI>1999 bytes (<CODE>i+i*i</CODE>) plus <CODE>1FBB</CODE></LI>
</UL>
</LI>
</UL>
<LI>"Joshua" (31 May 2008), Computer Interfacing Forum <A HREF="https://web.archive.org/web/20181116142405/https://www.lammertbies.nl/forum/viewtopic.php?t=530">topic 530</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>IV</STRONG> 2 codewords
<UL>
<LI><CODE>0384901B&#8203;56</CODE></LI>
<LI><CODE>03848400&#8203;00123031&#8203;41313330&#8203;30323031&#8203;33303031&#8203;1C393030&#8203;62BF</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Michael Junker (26 October 2009), Computer Interfacing Forum <A HREF="https://web.archive.org/web/20180920112011/https://www.lammertbies.nl/forum/viewtopic.php?t=1432">topic 1432</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>IV</STRONG> 7 codewords (7-bit payload characters)
<UL>
<LI><CODE>01100110&#8203;01110101&#8203;10000011&#8203;00000110&#8203;01100111&#8203;01011000&#8203;01101000&#8203;11101010&#8203;0</CODE> (source: <CODE>331D3030&#8203;331D30</CODE> + <CODE>53716</CODE>)</LI>
<LI><CODE>01101000&#8203;01110101&#8203;10000011&#8203;00000110&#8203;01100111&#8203;01011000&#8203;01111000&#8203;11100100&#8203;1</CODE> (source: <CODE>341D3030&#8203;331D30</CODE> + <CODE>61897</CODE>)</LI>
<LI><CODE>01101010&#8203;01110101&#8203;10000011&#8203;00000110&#8203;01100111&#8203;01011000&#8203;00001000&#8203;11100111&#8203;1</CODE> (source: <CODE>351D3030&#8203;331D30</CODE> + <CODE>04559</CODE>)</LI>
<LI><CODE>01101100&#8203;01110101&#8203;10000011&#8203;00000110&#8203;01100111&#8203;01011000&#8203;01011000&#8203;11100000&#8203;0</CODE> (source: <CODE>361D3030&#8203;331D30</CODE> + <CODE>45504</CODE>)</LI>
<LI><CODE>01100110&#8203;01110101&#8203;10100011&#8203;00000110&#8203;00000111&#8203;01011000&#8203;00101000&#8203;11100011&#8203;0</CODE> (source: <CODE>331D3430&#8203;301D30</CODE> + <CODE>20934</CODE>)</LI>
<LI><CODE>01100110&#8203;01110101&#8203;10000011&#8203;00000111&#8203;00100111&#8203;01011000&#8203;01101000&#8203;11111011&#8203;0</CODE> (source: <CODE>331D3030&#8203;391D30</CODE> + <CODE>53750</CODE>)</LI>
<LI><CODE>01100010&#8203;01110101&#8203;10000011&#8203;00010110&#8203;00000111&#8203;01011000&#8203;00001001&#8203;10101000&#8203;1</CODE> (source: <CODE>311D3031&#8203;301D30</CODE> + <CODE>04945</CODE>)</LI>
</UL>
</LI>
</UL>
</LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 4 June 2008</LI>
<LI>Updated: 2 January 2021</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-usb">CRC-16/USB</A></H3>
<P CLASS="third-party"><CODE>width=16  poly=0x8005  init=0xffff  refin=true  refout=true  xorout=0xffff  check=0xb4c8  residue=0xb001  name="CRC-16/USB"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="third-party">third-party</SPAN></LI>
<LI>CRC appended low byte first.</LI>
<LI>Anonymous (10 July 1997), <A HREF="https://web.archive.org/web/20160326215031/http://www.usb.org/developers/whitepapers/crcdes.pdf">"Cyclic Redundancy Checks in USB"</A> (Draft) (courtesy of the Internet Archive)
<UL>
<LI><STRONG>III</STRONG> Definition: Width, Poly, Init, XorOut (p.2)</LI>
<LI><STRONG>III</STRONG> Definition: Residue (p.3)</LI>
<LI><STRONG>III</STRONG> Code: Perl (p.4)</LI>
<LI><STRONG>IV</STRONG> 2 codewords (p.6)
<UL>
<LI><CODE>00010203&#8203;EF7A</CODE></LI>
<LI><CODE>23456789&#8203;0E1C</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Created: 1 December 2007</LI>
<LI>Updated: 6 February 2017</LI>
</UL>

<H3><A NAME="crc.cat.crc-16-xmodem">CRC-16/XMODEM</A></H3>
<P CLASS="attested"><CODE>width=16  poly=0x1021  init=0x0000  refin=false  refout=false  xorout=0x0000  check=0x31c3  residue=0x0000  name="CRC-16/XMODEM"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-16-acorn"><STRONG>CRC-16/ACORN</STRONG></A>, <A NAME="crc.cat.crc-16-lte"><STRONG>CRC-16/LTE</STRONG></A>, <A NAME="crc.cat.crc-16-v-41-msb"><STRONG>CRC-16/V-41-MSB</STRONG></A>, <A NAME="crc.cat.xmodem"><STRONG>XMODEM</STRONG></A>, <A NAME="crc.cat.zmodem"><STRONG>ZMODEM</STRONG></A></LI>
<LI>The MSB-first form of the V.41 algorithm.  For the LSB-first form see <A HREF="#crc.cat.crc-16-kermit">CRC-16/KERMIT</A>.  CRC presented high byte first.</LI>
<LI>Used in the MultiMediaCard interface.  In XMODEM and Acorn MOS the message bits are processed out of transmission order, compromising the guarantees on burst error detection.</LI>
<LI><A HREF="https://www.itu.int/rec/T-REC-V.41/en">ITU-T Recommendation V.41</A> (November 1988)
<UL>
<LI><STRONG>I</STRONG> Definition: Residue; full mathematical description (Section 2, p.2)</LI>
<LI><STRONG>I</STRONG> Shift register diagrams (Appendix I, p.9)</LI>
</UL>
</LI>
<LI>3rd Generation Partnership Project (3GPP) <A HREF="https://www.3gpp.org/ftp/Specs/2017-06/Rel-14/36_series/36212-e30.zip">TS 36.212</A> version 14.3.0 (June 2017) (zipped MS Word document) &mdash; ETSI <A HREF="https://www.etsi.org/deliver/etsi_ts/136200_136299/136212/14.03.00_60/ts_136212v140300p.pdf">TS 136 212</A> version 14.3.0 (July 2017)
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init, XorOut, Residue (Section 5.1.1, p.10)</LI>
<LI><STRONG>I</STRONG> Attachment relation, defining RefIn ^ RefOut (Section 5.1.1, p.10)</LI>
</UL>
</LI>
<LI>3rd Generation Partnership Project (3GPP) <A HREF="https://www.3gpp.org/ftp/Specs/2017-06/Rel-14/36_series/36321-e30.zip">TS 36.321</A> version 14.3.0 (June 2017) (zipped MS Word document) &mdash; ETSI <A HREF="https://www.etsi.org/deliver/etsi_ts/136300_136399/136321/14.03.00_60/ts_136321v140300p.pdf">TS 136 321</A> version 14.3.0 (July 2017)
<UL>
<LI>Referenced from TS 136 212 section 5.2.2.1, p.23</LI>
<LI><STRONG>I</STRONG> Definition: RefIn, RefOut (Section 6.1.1, pp.67&ndash;8)</LI>
</UL>
</LI>
<LI>JEDEC Standard <A HREF="https://www.jedec.org/sites/default/files/docs/JESD84-A441_0.pdf">JESD84-A441</A> (March 2010) (registration required)
<UL>
<LI><STRONG>I</STRONG> Full definition (Section 10.2, pp.157&ndash;8)</LI>
<LI><STRONG>I</STRONG> Shift register diagram (Figure 54, p.159)</LI>
</UL>
</LI>
<LI>Acorn Computers Ltd (October 1984), <A HREF="http://regregex.bbcmicro.net/BPlusUserGuide-1.07.pdf">BBC Microcomputer User Guide</A>
<UL>
<LI><STRONG>I</STRONG> Pseudocode (Chapter 35, p.369)</LI>
</UL>
</LI>
<LI>Ward Christensen, Keith Petersen <DFN>et al.</DFN> (8 June 1982), XMODEM 5.0
<UL>
<LI><STRONG>II</STRONG> Implementation (attributed to Paul Hansknecht)</LI>
</UL>
</LI>
<LI>Acorn Computers Ltd (1981), Acorn MOS 1.20 (BBC Micro cassette format)
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>Lammert Bies (August 2011), <A HREF="https://www.lammertbies.nl/comm/info/crc-calculation">CRC calculator</A>
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>Berndt M. Gammel (29 October 2006), <A HREF="https://www.matpack.de/">Matpack 1.9.1</A> class <CODE>MpCRC</CODE> documentation
<UL>
<LI><STRONG>III</STRONG> All parameters (except Residue)</LI>
</UL>
</LI>
<LI>Altera Corporation (April 1999), <A HREF="https://web.archive.org/web/20070221144121/http://www.msc.rl.ac.uk/europractice/vendors/dscrc.pdf">crc MegaCore Function Data Sheet</A>, version 2 (courtesy of the Internet Archive)
<UL>
<LI><STRONG>III</STRONG> All parameters (except Residue) cited for ZMODEM (p.6)</LI>
</UL>
</LI>
<LI>William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling (1992), <!-- A HREF="http://apps.nrbook.com/c/index.html" --><CITE>Numerical recipes in C: The art of scientific computing</CITE><!-- /A -->, 2nd ed., Cambridge University Press, ISBN 0-521-43108-5
<UL>
<LI><STRONG>III</STRONG> All parameters (except Check) (p.898)</LI>
<LI><STRONG>III</STRONG> Code: C (pp.900&ndash;1)</LI>
<LI><STRONG>IV</STRONG> 2 codewords (p.898)
<UL>
<LI><CODE>541A71</CODE></LI>
<LI><CODE>4361744D&#8203;6F757365&#8203;39383736&#8203;35343332&#8203;31E556</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Created: 30 March 2005</LI>
<LI>Updated: 2 January 2021</LI>
</UL>

<H3><A NAME="crc.cat-bits.17"></A><A NAME="crc.cat.crc-17-can-fd">CRC-17/CAN-FD</A></H3>
<P CLASS="academic"><CODE>width=17  poly=0x1685b  init=0x00000  refin=false  refout=false  xorout=0x00000  check=0x04f03  residue=0x00000  name="CRC-17/CAN-FD"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>Robert Bosch GmbH (17 April 2012), <A HREF="https://web.archive.org/web/20151017122935/http://www.bosch-semiconductors.de/media/pdf_1/canliteratur/can_fd_spec.pdf">CAN with Flexible Data-Rate: Specification</A>, version 1.0 (courtesy of the Internet Archive)
<UL>
<LI><STRONG>I</STRONG> Full definition (except Check); pseudocode (Section 3.2.1, pp.13&ndash;14)</LI>
</UL>
</LI>
<LI>Created: 20 June 2017</LI>
<LI>Updated: 3 January 2021</LI>
</UL>

<H3><A NAME="crc.cat-bits.21"></A><A NAME="crc.cat.crc-21-can-fd">CRC-21/CAN-FD</A></H3>
<P CLASS="academic"><CODE>width=21  poly=0x102899  init=0x000000  refin=false  refout=false  xorout=0x000000  check=0x0ed841  residue=0x000000  name="CRC-21/CAN-FD"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>Robert Bosch GmbH (17 April 2012), <A HREF="https://web.archive.org/web/20151017122935/http://www.bosch-semiconductors.de/media/pdf_1/canliteratur/can_fd_spec.pdf">CAN with Flexible Data-Rate: Specification</A>, version 1.0 (courtesy of the Internet Archive)
<UL>
<LI><STRONG>I</STRONG> Full definition (except Check); pseudocode (Section 3.2.1, pp.13&ndash;14)</LI>
</UL>
</LI>
<LI>Robert Bosch GmbH (23 December 2011), CRC for CAN with flexible data rate (CAN FD)
<UL>
<LI><STRONG>I</STRONG> Error control properties; theory of polynomial construction (Section 2, p.1; Section 3, p.2)</LI>
</UL>
</LI>
<LI>Created: 20 June 2017</LI>
<LI>Updated: 3 January 2021</LI>
</UL>

<H3><A NAME="crc.cat-bits.24"></A><A NAME="crc.cat.crc-24-ble">CRC-24/BLE</A></H3>
<P CLASS="attested"><CODE>width=24  poly=0x00065b  init=0x555555  refin=true  refout=true  xorout=0x000000  check=0xc25a56  residue=0x000000  name="CRC-24/BLE"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Reference from named polynomial in Prof. Koopman's <A HREF="https://users.ece.cmu.edu/~koopman/crc/notes.html">CRC Polynomial Zoo</A>.</LI>
<LI>The Init value applies to Bluetooth Low Energy (BLE) test packets and (device-) advertising channel packets.  Data channel packets use a custom Init value defined at connection time.</LI>
<LI>BLE sniffer screenshot reference from "volta77" (29 May 2014), <A HREF="https://devzone.nordicsemi.com/question/2104/ble-crc-calculation/">Nordic Developer Zone post</A></LI>
<LI>Bluetooth SIG (31 December 2019), <A HREF="https://www.bluetooth.com/specifications/">Bluetooth Specification</A>, <A HREF="https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=478726">Core Version 5.2</A>
<UL>
<LI><STRONG>I</STRONG> Full definition (except Check) (Section 6.B.3.1.1, pp.2923&ndash;4)</LI>
<LI><STRONG>I</STRONG> Shift register diagram (Figure 6.B.3.3, p.2924)</LI>
</UL>
</LI>
<LI>Texas Instruments, Inc. (12 March 2013), Processors wiki, <!-- A HREF="http://processors.wiki.ti.com/index.php/BLE_sniffer_guide" -->BLE sniffer guide<!-- /A -->
<UL>
<LI><STRONG>II</STRONG> Transcripts confirming implementation with 4 codewords (plus 3 with custom Init)
<UL>
<LI><CODE>00119992&#8203;B1EBD790&#8203;02010507&#8203;02031802&#8203;180418A8&#8203;5DEF</CODE></LI>
<LI><CODE>030C5F96&#8203;EA301800&#8203;9992B1EB&#8203;D790DF02&#8203;EB</CODE></LI>
<LI><CODE>04129992&#8203;B1EBD790&#8203;0B094B65&#8203;79666F62&#8203;64656D6F&#8203;D39F03</CODE></LI>
<LI><CODE>05225F96&#8203;EA301800&#8203;9992B1EB&#8203;D7901B0A&#8203;8560A77B&#8203;22020F00&#8203;50000000&#8203;D007FFFF&#8203;FFFF1FA9&#8203;48DA02</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Liam Goudge (1 October 2014), <A HREF="http://www.cocoasteam.com/?p=384">"Custom Bluetooth Low Energy board with 2.4GHz antenna hack and Nordic nRF51822&hellip;"</A>
<UL>
<LI><STRONG>II</STRONG> Transcript confirming implementation with 2 codewords (plus 8 with custom Init)
<UL>
<LI><CODE>4021EE04&#8203;A5DDA7F9&#8203;0B094C69&#8203;616D7342&#8203;4C457632&#8203;03194103&#8203;02010607&#8203;030D180F&#8203;180A181C&#8203;929E</CODE></LI>
<LI><CODE>C522C4A5&#8203;F2BE7479&#8203;EE04A5DD&#8203;A7F96672&#8203;65500B08&#8203;5B030500&#8203;18000000&#8203;4800FFFF&#8203;FFFF1FA9&#8203;E478D0</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Anonymous (7 September 2012), <A HREF="https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/538/4353.btproblem2.png">BLE sniffer screenshot</A> (courtesy of Texas Instruments, Inc.  E2E&trade; Community forum)
<UL>
<LI><STRONG>II</STRONG> Transcript confirming implementation with 2 codewords (plus 7 with custom Init)
<UL>
<LI><CODE>00090DEF&#8203;84B72D3C&#8203;020105C2&#8203;E2A4</CODE></LI>
<LI><CODE>0522AB2F&#8203;85311800&#8203;0DEF84B7&#8203;2D3C7821&#8203;18C9567F&#8203;A2022700&#8203;50000000&#8203;D007FFFF&#8203;FFFF1FAF&#8203;0F1957</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 7 February 2016</LI>
<LI>Updated: 3 January 2021</LI>
</UL>

<H3><A NAME="crc.cat.crc-24-flexray-a">CRC-24/FLEXRAY-A</A></H3>
<P CLASS="attested"><CODE>width=24  poly=0x5d6dcb  init=0xfedcba  refin=false  refout=false  xorout=0x000000  check=0x7979bd  residue=0x000000  name="CRC-24/FLEXRAY-A"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Channels A and B have different initial vectors to prevent frames crossing channels.</LI>
<LI>FlexRay Consortium (October 2010), <A HREF="https://svn.ipd.kit.edu/nlrp/public/FlexRay/FlexRay%E2%84%A2%20Protocol%20Specification%20Version%203.0.1.pdf">FlexRay Communications System Protocol Specification</A>, version 3.0.1 (courtesy of nlrp Benchmark)
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init, RefOut (Section 4.4, pp.117&ndash;8)</LI>
<LI><STRONG>I</STRONG> Pseudocode (Section 4.5, pp.118&ndash;20)</LI>
</UL>
</LI>
<LI>FlexRay Consortium (October 2010), <A HREF="https://svn.ipd.kit.edu/nlrp/public/FlexRay/FlexRay%E2%84%A2%20Protocol%20Conformance%20Test%20Specification%20Version%203.0.1.pdf">FlexRay Protocol Conformance Test Specification</A>, version 3.0.1 (courtesy of nlrp Benchmark)
<UL>
<LI><STRONG>IV</STRONG> 5 codewords (Section 2.7.5, p.681)
<UL>
<LI><CODE>18020209&#8203;880000F3&#8203;39C1</CODE></LI>
<LI><CODE>600A0248&#8203;C8010264&#8203;6D70</CODE></LI>
<LI><CODE>205606C8&#8203;48102030&#8203;40506047&#8203;4380</CODE></LI>
<LI><CODE>202E06C8&#8203;48102030&#8203;40506096&#8203;C9D1</CODE></LI>
<LI><CODE>201A06C8&#8203;48102030&#8203;405060B0&#8203;72EB</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 3 November 2007</LI>
<LI>Updated: 6 February 2017</LI>
</UL>

<H3><A NAME="crc.cat.crc-24-flexray-b">CRC-24/FLEXRAY-B</A></H3>
<P CLASS="attested"><CODE>width=24  poly=0x5d6dcb  init=0xabcdef  refin=false  refout=false  xorout=0x000000  check=0x1f23b8  residue=0x000000  name="CRC-24/FLEXRAY-B"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Channels A and B have different initial vectors to prevent frames crossing channels.</LI>
<LI>FlexRay Consortium (October 2010), <A HREF="https://svn.ipd.kit.edu/nlrp/public/FlexRay/FlexRay%E2%84%A2%20Protocol%20Specification%20Version%203.0.1.pdf">FlexRay Communications System Protocol Specification</A>, version 3.0.1 (courtesy of nlrp Benchmark)
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init, RefOut (Section 4.4, pp.117&ndash;8)</LI>
<LI><STRONG>I</STRONG> Pseudocode (Section 4.5, pp.118&ndash;20)</LI>
</UL>
</LI>
<LI>FlexRay Consortium (October 2010), <A HREF="https://svn.ipd.kit.edu/nlrp/public/FlexRay/FlexRay%E2%84%A2%20Protocol%20Conformance%20Test%20Specification%20Version%203.0.1.pdf">FlexRay Protocol Conformance Test Specification</A>, version 3.0.1 (courtesy of nlrp Benchmark)
<UL>
<LI><STRONG>IV</STRONG> 5 codewords (Section 2.7.5, p.681)
<UL>
<LI><CODE>18020209&#8203;880000D5&#8203;B910</CODE></LI>
<LI><CODE>600A0248&#8203;C8010242&#8203;EDA1</CODE></LI>
<LI><CODE>205606C8&#8203;48102030&#8203;405060E6&#8203;D9BE</CODE></LI>
<LI><CODE>202E06C8&#8203;48102030&#8203;40506037&#8203;53EF</CODE></LI>
<LI><CODE>201A06C8&#8203;48102030&#8203;40506011&#8203;E8D5</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 3 November 2007</LI>
<LI>Updated: 6 February 2017</LI>
</UL>

<H3><A NAME="crc.cat.crc-24-interlaken">CRC-24/INTERLAKEN</A></H3>
<P CLASS="academic"><CODE>width=24  poly=0x328b63  init=0xffffff  refin=false  refout=false  xorout=0xffffff  check=0xb4f3e6  residue=0x144e63  name="CRC-24/INTERLAKEN"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>Reference from named polynomial in Prof. Koopman's <A HREF="https://users.ece.cmu.edu/~koopman/crc/notes.html">CRC Polynomial Zoo</A>.</LI>
<LI>The Interlaken Alliance (7 October 2008), <A HREF="http://interlakenalliance.com/wp-content/uploads/2019/12/Interlaken_Protocol_Definition_v1.2.pdf">Interlaken Protocol Definition</A>, version 1.2
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly (Section 5.3.2.2, p.18)</LI>
<LI><STRONG>I</STRONG> Definition: Init, RefIn, RefOut, XorOut (Appendix B, p.48)</LI>
<LI><STRONG>IV</STRONG> 1 codeword (Appendix B, p.48)
<UL>
<LI><CODE>520BB104&#8203;7D585E00&#8203;C2B4B401&#8203;BBAF0100&#8203;0000FCB0&#8203;B3A8468E&#8203;1A0A01E1&#8203;BA38A9DF&#8203;00003677&#8203;EEA56DDA&#8203;BEB48D4D&#8203;93A88A12&#8203;00001F95&#8203;15F655DC&#8203;C3857A64&#8203;1B260C51&#8203;F1000000&#8203;00000000&#8203;59E69D</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Created: 10 February 2016</LI>
<LI>Updated: 28 December 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-24-lte-a">CRC-24/LTE-A</A></H3>
<P CLASS="academic"><CODE>width=24  poly=0x864cfb  init=0x000000  refin=false  refout=false  xorout=0x000000  check=0xcde703  residue=0x000000  name="CRC-24/LTE-A"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>Reference from named polynomial in Prof. Koopman's <A HREF="https://users.ece.cmu.edu/~koopman/crc/notes.html">CRC Polynomial Zoo</A>.</LI>
<LI>3rd Generation Partnership Project (3GPP) <A HREF="https://www.3gpp.org/ftp/Specs/2017-06/Rel-14/36_series/36212-e30.zip">TS 36.212</A> version 14.3.0 (June 2017) (zipped MS Word document) &mdash; ETSI <A HREF="https://www.etsi.org/deliver/etsi_ts/136200_136299/136212/14.03.00_60/ts_136212v140300p.pdf">TS 136 212</A> version 14.3.0 (July 2017)
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init, XorOut, Residue (Section 5.1.1, p.10)</LI>
<LI><STRONG>I</STRONG> Attachment relation, defining RefIn ^ RefOut (Section 5.1.1, p.10)</LI>
</UL>
</LI>
<LI>3rd Generation Partnership Project (3GPP) <A HREF="https://www.3gpp.org/ftp/Specs/2017-06/Rel-14/36_series/36321-e30.zip">TS 36.321</A> version 14.3.0 (June 2017) (zipped MS Word document) &mdash; ETSI <A HREF="https://www.etsi.org/deliver/etsi_ts/136300_136399/136321/14.03.00_60/ts_136321v140300p.pdf">TS 136 321</A> version 14.3.0 (July 2017)
<UL>
<LI>Referenced from TS 136 212 section 5.2.2.1, p.23</LI>
<LI><STRONG>I</STRONG> Definition: RefIn, RefOut (Section 6.1.1, pp.67&ndash;8)</LI>
</UL>
</LI>
<LI>Created: 13 February 2016</LI>
<LI>Updated: 25 March 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-24-lte-b">CRC-24/LTE-B</A></H3>
<P CLASS="academic"><CODE>width=24  poly=0x800063  init=0x000000  refin=false  refout=false  xorout=0x000000  check=0x23ef52  residue=0x000000  name="CRC-24/LTE-B"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>Reference from named polynomial in Prof. Koopman's <A HREF="https://users.ece.cmu.edu/~koopman/crc/notes.html">CRC Polynomial Zoo</A>.</LI>
<LI>3rd Generation Partnership Project (3GPP) <A HREF="https://www.3gpp.org/ftp/Specs/2017-06/Rel-14/36_series/36212-e30.zip">TS 36.212</A> version 14.3.0 (June 2017) (zipped MS Word document) &mdash; ETSI <A HREF="https://www.etsi.org/deliver/etsi_ts/136200_136299/136212/14.03.00_60/ts_136212v140300p.pdf">TS 136 212</A> version 14.3.0 (July 2017)
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init, XorOut, Residue (Section 5.1.1, p.10)</LI>
<LI><STRONG>I</STRONG> Attachment relation, defining RefIn ^ RefOut (Section 5.1.1, p.10)</LI>
</UL>
</LI>
<LI>3rd Generation Partnership Project (3GPP) <A HREF="https://www.3gpp.org/ftp/Specs/2017-06/Rel-14/36_series/36321-e30.zip">TS 36.321</A> version 14.3.0 (June 2017) (zipped MS Word document) &mdash; ETSI <A HREF="https://www.etsi.org/deliver/etsi_ts/136300_136399/136321/14.03.00_60/ts_136321v140300p.pdf">TS 136 321</A> version 14.3.0 (July 2017)
<UL>
<LI>Referenced from TS 136 212 section 5.2.2.1, p.23</LI>
<LI><STRONG>I</STRONG> Definition: RefIn, RefOut (Section 6.1.1, pp.67&ndash;8)</LI>
</UL>
</LI>
<LI>Created: 13 February 2016</LI>
<LI>Updated: 25 March 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-24-openpgp">CRC-24/OPENPGP</A></H3>
<P CLASS="attested"><CODE>width=24  poly=0x864cfb  init=0xb704ce  refin=false  refout=false  xorout=0x000000  check=0x21cf02  residue=0x000000  name="CRC-24/OPENPGP"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-24"><STRONG>CRC-24</STRONG></A></LI>
<LI><A HREF="https://tools.ietf.org/html/rfc4880">IETF RFC 4880</A> (November 2007)
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init (Section 6, p.53)</LI>
<LI><STRONG>I</STRONG> Code: C (Section 6.1, p.54)</LI>
</UL>
</LI>
<LI>PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>Berndt M. Gammel (29 October 2006), <A HREF="https://www.matpack.de/">Matpack 1.9.1</A> class <CODE>MpCRC</CODE> documentation
<UL>
<LI><STRONG>III</STRONG> All parameters (except Residue)</LI>
</UL>
</LI>
<LI>Created: 2 November 2007</LI>
<LI>Updated: 25 March 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-24-os-9">CRC-24/OS-9</A></H3>
<P CLASS="attested"><CODE>width=24  poly=0x800063  init=0xffffff  refin=false  refout=false  xorout=0xffffff  check=0x200fa5  residue=0x800fe3  name="CRC-24/OS-9"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Microware Systems Corporation (January 1983), <A HREF="https://www.roug.org/soren/6809/os9sysprog.pdf">OS-9 Operating System, System Programmer's Manual</A>, revision F-1 (PDF, <A HREF="https://www.roug.org/soren/6809/os9sysprog.html">HTML</A>) (courtesy of S&oslash;ren Roug)<!-- want to see scans of these pages + inside cover -->
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init, XorOut, Residue (Section 10.1.4, pp.51&ndash;2)</LI>
<LI><STRONG>I</STRONG> Code: C (Section 10.1.4, p.52)</LI>
</UL>
</LI>
<LI>Microware Systems Corporation (August 2000), <A HREF="https://web.archive.org/web/20140829020824/http://rab.ict.pwr.wroc.pl/dydaktyka/supwa/os9/MWARE/pdf/os9k_tech.pdf">OS-9 Technical Manual, version 2.2</A>, revision I (courtesy of the Internet Archive)
<UL>
<LI><STRONG>I</STRONG> Definition: Init, Residue (Chapter 8, p.228)</LI>
</UL>
</LI>
<LI>Microware Inc., TPUG Inc. (1985), <A HREF="http://mikenaberezny.com/wp-content/uploads/2009/11/os9-systemdisk.d80">SuperOS-9 system disk</A> (courtesy of Mike Naberezny)
<UL>
<LI><STRONG>II</STRONG> Transcript confirming implementation with at least 7 codewords (selection)
<UL>
<LI><CODE>87CD0032&#8203;0021F181&#8203;D6002600&#8203;29FF0000&#8203;000F0104&#8203;00000100&#8203;06010100&#8203;10001001&#8203;01445261&#8203;ED015242&#8203;C643626D&#8203;4473EB0C&#8203;4EDF</CODE></LI>
<LI><CODE>87CD0020&#8203;000D1181&#8203;08001500&#8203;FA556E4D&#8203;6F756EF4&#8203;01113F21&#8203;265F103F&#8203;06782872</CODE></LI>
<LI><CODE>87CD003C&#8203;002CF181&#8203;D5003000&#8203;33030003&#8203;051A0000&#8203;01000101&#8203;00011808&#8203;180D1B04&#8203;01170305&#8203;08070000&#8203;002C0000&#8203;546572ED&#8203;5343C643&#8203;626D436F&#8203;EE81D4AA</CODE></LI>
<LI><CODE>87CD0030&#8203;0021F181&#8203;D4002400&#8203;27FF0000&#8203;000F0100&#8203;00000100&#8203;23010100&#8203;10001001&#8203;0144B001&#8203;5242C643&#8203;626D4473&#8203;EBA297DD</CODE></LI>
<LI><CODE>87CD0030&#8203;0021F181&#8203;D4002400&#8203;27FF0000&#8203;000F0101&#8203;00000100&#8203;23010100&#8203;10001001&#8203;0144B101&#8203;5242C643&#8203;626D4473&#8203;EBC1CCD5</CODE></LI>
<LI><CODE>87CD0030&#8203;0021F181&#8203;D4002400&#8203;27FF0000&#8203;000F0102&#8203;00000100&#8203;23010100&#8203;10001001&#8203;0144B201&#8203;5242C643&#8203;626D4473&#8203;EB6421CD</CODE></LI>
<LI><CODE>87CD0030&#8203;0021F181&#8203;D4002400&#8203;27FF0000&#8203;000F0103&#8203;00000100&#8203;23010100&#8203;10001001&#8203;0144B301&#8203;5242C643&#8203;626D4473&#8203;EB077AC5</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>S&oslash;ren Roug (15 May 2018), <A HREF="https://github.com/sorenroug/osnine-java">osnine-java</A>, module <A HREF="https://github.com/sorenroug/osnine-java/blob/master/os9l1/src/main/java/org/roug/osnine/os9/OS9.java"><CODE>os9l1/src/main/java/org/roug/osnine/os9/OS9.java</CODE></A>
<UL>
<LI><STRONG>III</STRONG> Code: Java (ll.953&ndash;94)</LI>
</UL>
</LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 25 July 2018</LI>
<LI>Updated: 28 December 2019</LI>
</UL>

<H3><A NAME="crc.cat-bits.30"></A><A NAME="crc.cat.crc-30-cdma">CRC-30/CDMA</A></H3>
<P CLASS="academic"><CODE>width=30  poly=0x2030b9c7  init=0x3fffffff  refin=false  refout=false  xorout=0x3fffffff  check=0x04c34abf  residue=0x34efa55a  name="CRC-30/CDMA"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>Reference from named polynomial in Prof. Koopman's <A HREF="https://users.ece.cmu.edu/~koopman/crc/notes.html">CRC Polynomial Zoo</A>.</LI>
<LI>CCSA Telecommunication Industry Standard <A HREF="http://www.ccsa.org.cn/english/yd1838/Technical%20Requirements%20of%20Link%20Access%20Control%20(LAC)%20for%20the%20CDMA-based%20Digital%20Trunking%20Mobile%20Communication%20System.pdf">YD/T 1838.3-2008</A> (5 November 2008)
<UL>
<LI><STRONG>I</STRONG> Full definition (except Check, Residue) (Section 2.1.1.5.1.2, pp.2-44&ndash;5)</LI>
</UL>
</LI>
<LI>Created: 20 February 2016</LI>
<LI>Updated: 3 January 2021</LI>
</UL>

<H3><A NAME="crc.cat-bits.31"></A><A NAME="crc.cat.crc-31-philips">CRC-31/PHILIPS</A></H3>
<P CLASS="confirmed"><CODE>width=31  poly=0x04c11db7  init=0x7fffffff  refin=false  refout=false  xorout=0x7fffffff  check=0x0ce9e46c  residue=0x4eaf26f1  name="CRC-31/PHILIPS"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="confirmed">confirmed</SPAN></LI>
<LI>Sincere thanks to Luigi (gigirex) for his assistance.</LI>
<LI>AVMagazine.it has a <A HREF="https://www.avmagazine.it/forum/107-disc-ufficiali-lcd-full-hd/50543-philips-37pf9731/" HREFLANG="it">forum topic</A> on the Philips TV (in Italian).</LI>
<LI>Philips 37PF9731 LCD TV
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>"gigirex" (1 March 2012), Computer Interfacing Forum <A HREF="https://web.archive.org/web/20181116141051/https://www.lammertbies.nl/forum/viewtopic.php?t=1774">topic 1774</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>IV</STRONG> 7 codewords (76 bytes each)</LI>
</UL>
<LI>Created: 12 April 2012</LI>
<LI>Updated: 28 December 2019</LI>
</UL>

<H3><A NAME="crc.cat-bits.32"></A><A NAME="crc.cat.crc-32-aixm">CRC-32/AIXM</A></H3>
<P CLASS="attested"><CODE>width=32  poly=0x814141ab  init=0x00000000  refin=false  refout=false  xorout=0x00000000  check=0x3010bf7f  residue=0x00000000  name="CRC-32/AIXM"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-32q"><STRONG>CRC-32Q</STRONG></A></LI>
<LI>Used for aeronautical data.  Recognised by the ICAO.</LI>
<LI>EUROCONTROL (20 March 2006), <A HREF="https://www.aixm.aero/sites/aixm.aero/files/imce/library/aixm_primer_4-5.pdf">AIXM Primer 4.5</A>
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init, XorOut, RefIn (Section 6.2, pp.23&ndash;5)</LI>
<LI><STRONG>I</STRONG> Flowchart (p.24)</LI>
<LI><STRONG>I</STRONG> Code: Java (Appendix B, pp.41&ndash;5)</LI>
<LI><STRONG>IV</STRONG> 8 codewords (Table 6.1, p.25)
<UL>
<LI><CODE>34383036&#8203;33374EA5&#8203;A7C704</CODE></LI>
<LI><CODE>30313633&#8203;34313145&#8203;A1AE5741</CODE></LI>
<LI><CODE>34383036&#8203;33374E30&#8203;31363334&#8203;313145A1&#8203;BA30EE</CODE></LI>
<LI><CODE>3738326C&#8203;297100</CODE></LI>
<LI><CODE>34383036&#8203;33374E30&#8203;31363334&#8203;31314537&#8203;38326A25&#8203;9F4E</CODE></LI>
<LI><CODE>34362E37&#8203;266D25C1</CODE></LI>
<LI><CODE>34383036&#8203;33374E30&#8203;31363334&#8203;31314534&#8203;362E372F&#8203;866D6D</CODE></LI>
<LI><CODE>34383036&#8203;33374E30&#8203;31363334&#8203;31314537&#8203;38323436&#8203;2E375E5D&#8203;C940</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Created: 29 April 2009</LI>
<LI>Updated: 2 January 2021</LI>
</UL>

<H3><A NAME="crc.cat.crc-32-autosar">CRC-32/AUTOSAR</A></H3>
<P CLASS="attested"><CODE>width=32  poly=0xf4acfb13  init=0xffffffff  refin=true  refout=true  xorout=0xffffffff  check=0x1697d06a  residue=0x904cddbf  name="CRC-32/AUTOSAR"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>AUTOSAR (30 November 2020), <A HREF="https://www.autosar.org/standards/classic-platform/">AUTOSAR Classic Platform</A> release R20-11, <A HREF="https://www.autosar.org/fileadmin/user_upload/standards/classic/20-11/AUTOSAR_SWS_CRCLibrary.pdf">Specification of CRC Routines</A>
<UL>
<LI><STRONG>I</STRONG> Comprehensive primer on CRC theory (Section 7.1, pp.18&ndash;21)</LI>
<LI><STRONG>I</STRONG> All parameters (Section 7.2.3.2, pp.26&ndash;7)</LI>
<LI><STRONG>IV</STRONG> 7 codewords (Section 7.2.3.2, p.27)
<UL>
<LI><CODE>00000000&#8203;4022B36F</CODE></LI>
<LI><CODE>F2018325&#8203;1A724F</CODE></LI>
<LI><CODE>0FAA0055&#8203;F82D6620</CODE></LI>
<LI><CODE>00FF5511&#8203;6E99D79B</CODE></LI>
<LI><CODE>332255AA&#8203;BBCCDDEE&#8203;FF3D345A&#8203;A6</CODE></LI>
<LI><CODE>926B5578&#8203;8A68EE</CODE></LI>
<LI><CODE>FFFFFFFF&#8203;FFFFFFFF</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 24 July 2016</LI>
<LI>Updated: 2 January 2021</LI>
</UL>

<H3><A NAME="crc.cat.crc-32-base91-d">CRC-32/BASE91-D</A></H3>
<P CLASS="confirmed"><CODE>width=32  poly=0xa833982b  init=0xffffffff  refin=true  refout=true  xorout=0xffffffff  check=0x87315576  residue=0x45270551  name="CRC-32/BASE91-D"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="confirmed">confirmed</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-32d"><STRONG>CRC-32D</STRONG></A></LI>
<LI>Greg Cook (30 December 2018), <A HREF="http://regregex.bbcmicro.net/#prog.base91">Base91</A> level 1 version 3.01
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
<LI><STRONG>III</STRONG> Full mathematical description</LI>
<LI><STRONG>III</STRONG> All parameters</LI>
<LI><STRONG>III</STRONG> Code: C</LI>
</UL>
</LI>
<LI>Prof. Philip Koopman (July 2002), <A HREF="https://users.ece.cmu.edu/~koopman/networks/dsn02/dsn02_koopman.pdf">"32-Bit Cyclic Redundancy Codes for Internet Applications"</A>, Proceedings of The International Conference on Dependable Systems and Networks
<UL>
<LI><STRONG>III</STRONG> Polynomial discovered by Castagnoli; properties confirmed by Koopman</LI>
</UL>
</LI>
<LI>Created: 28 November 2008</LI>
<LI>Updated: 21 March 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-32-bzip2">CRC-32/BZIP2</A></H3>
<P CLASS="attested"><CODE>width=32  poly=0x04c11db7  init=0xffffffff  refin=false  refout=false  xorout=0xffffffff  check=0xfc891918  residue=0xc704dd7b  name="CRC-32/BZIP2"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-32-aal5"><STRONG>CRC-32/AAL5</STRONG></A>, <A NAME="crc.cat.crc-32-dect-b"><STRONG>CRC-32/DECT-B</STRONG></A>, <A NAME="crc.cat.b-crc-32"><STRONG>B-CRC-32</STRONG></A></LI>
<LI>Used in DECT B-fields.
<LI>Black's example AAL5 cells, with bytes <CODE>00 00 00 28</CODE> inserted between the described data fields and their CRCs, equal the examples in I.363.5.</LI>
<LI><A HREF="https://www.itu.int/rec/T-REC-I.363.5/en">ITU-T Recommendation I.363.5</A> (August 1996)
<UL>
<LI><STRONG>I</STRONG> Definition: Residue; full mathematical description (Section 9.2.1.2 (f), p.12)</LI>
<LI><STRONG>IV</STRONG> 3 codewords (Appendix I, p.39)
<UL>
<LI><CODE>00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000028&#8203;864D7F99</CODE></LI>
<LI><CODE>FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;00000028&#8203;C55E457A</CODE></LI>
<LI><CODE>01020304&#8203;05060708&#8203;090A0B0C&#8203;0D0E0F10&#8203;11121314&#8203;15161718&#8203;191A1B1C&#8203;1D1E1F20&#8203;21222324&#8203;25262728&#8203;00000028&#8203;BF671ED0</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>ETSI <A HREF="https://www.etsi.org/deliver/etsi_en/300100_300199/30017503/02.05.01_60/en_30017503v020501p.pdf">EN 300 175-3</A> version 2.5.1 (August 2013)
<UL>
<LI><STRONG>I</STRONG> Definition: Residue; full mathematical description (Section 6.2.5.5, p.102)</LI>
</UL>
</LI>
<LI>Julian Seward (4 September 1999), bzip2 0.9.5d
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>Emil Lenchak, Texas Instruments, Inc. (June 2018), <A HREF="https://www.ti.com/lit/an/slaa221a/slaa221a.pdf">CRC Implementation With MSP430</A>
<UL>
<LI><STRONG>III</STRONG> All parameters (except Residue) (Section 4.6, p.6)</LI>
</UL>
</LI>
<LI>Richard Black (18 February 1994), <A HREF="https://www.cl.cam.ac.uk/research/srg/bluebook/21/crc/node6.html">Fast CRC32 in Software: Software Implementations</A>
<UL>
<LI><STRONG>III</STRONG> Code: C</LI>
</UL>
</LI>
<LI>Richard Black (18 February 1994), <A HREF="https://www.cl.cam.ac.uk/research/srg/bluebook/21/crc/node4.html">Fast CRC32 in Software: Some Examples</A>
<UL>
<LI><STRONG>IV</STRONG> 3 codewords (same as in I.363.5)</LI>
</UL>
</LI>
<LI>Angie Tso, Telecommunications Techniques Corp. (24 October 1994), <A HREF="https://web.archive.org/web/20061009235306/http://cell-relay.indiana.edu/cell-relay/publications/software/CRC/32bitCRC.testcases.html">Cell Relay mailing list post</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>IV</STRONG> 4 codewords (first three same as in I.363.5)
<UL>
<LI><CODE>01020304&#8203;05060708&#8203;090A0B0C&#8203;0D0E0F10&#8203;11121314&#8203;15161718&#8203;191A1B1C&#8203;1D1E1F20&#8203;21222324&#8203;25262728&#8203;11220028&#8203;ACBA602A</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Ryan Luecke, James Lyons (11 October 2011), <A HREF="https://blog.box.com/blog/crc32-checksums-the-good-the-bad-and-the-ugly/">CRC32 Checksums; The Good, The Bad, And The Ugly</A>
<UL>
<LI><STRONG>IV</STRONG> 1 codeword
<UL>
<LI><CODE>6173640A&#8203;86FA4F5B</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 8 October 2008</LI>
<LI>Updated: 20 March 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-32-cd-rom-edc">CRC-32/CD-ROM-EDC</A></H3>
<P CLASS="academic"><CODE>width=32  poly=0x8001801b  init=0x00000000  refin=true  refout=true  xorout=0x00000000  check=0x6ec2edc4  residue=0x00000000  name="CRC-32/CD-ROM-EDC"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI><A HREF="https://www.ecma-international.org/publications/files/ECMA-ST/Ecma-130.pdf">ECMA standard ECMA-130</A>, edition 2 (June 1996) &mdash; ISO/IEC 10149:1995
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Refin, RefOut, Residue (Section 14.3, p.16)</LI>
</UL>
</LI>
<LI>Heiko Ei&szlig;feldt, J&ouml;rg Schilling (28 April 2013), <A HREF="http://cdrtools.sourceforge.net/">cdrtools</A> 3.01, modules <CODE>cdrtools-3.01/libedc/crctable.out</CODE>, <CODE>cdrtools-3.01/libedc/edc_ecc.c</CODE>
<UL>
<LI><STRONG>III</STRONG> Parameters: Width, Poly, RefIn</LI>
<LI><STRONG>III</STRONG> Code: C</LI>
</UL>
</LI>
<LI>Created: 19 April 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-32-cksum">CRC-32/CKSUM</A></H3>
<P CLASS="attested"><CODE>width=32  poly=0x04c11db7  init=0x00000000  refin=false  refout=false  xorout=0xffffffff  check=0x765e7680  residue=0xc704dd7b  name="CRC-32/CKSUM"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.cksum"><STRONG>CKSUM</STRONG></A>, <A NAME="crc.cat.crc-32-posix"><STRONG>CRC-32/POSIX</STRONG></A></LI>
<LI>The <CODE>cksum</CODE> program processes a representation of the input stream length following the input.  It returns <CODE>930766865</CODE> (<CODE>0x377A6011</CODE>) on the check string, processed internally as <CODE>31 32 33 34 35 36 37 38 39 09</CODE>.  See the definition for details.</LI>
<LI>The Open Group (1997), Single Unix Specification, version 2, Commands &amp; Utilities Issue 5, Reference Pages: <A HREF="https://pubs.opengroup.org/onlinepubs/7990989775/xcu/cksum.html">cksum</A>
<UL>
<LI><STRONG>I</STRONG> Full definition (except Check, Residue)</LI>
</UL>
</LI>
<LI>Q. Frank Xia (December 1999), GNU cksum 2.0a
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>Michael Niedermayer, Aur&eacute;lien Jacobs <DFN>et al.</DFN> (11 July 2020), <A HREF="https://ffmpeg.org/releases/ffmpeg-4.3.1.tar.xz">FFmpeg 4.3.1</A> (XZ compressed tarfile), module <A HREF="https://github.com/FFmpeg/FFmpeg/blob/master/libavutil/tests/crc.c"><CODE>ffmpeg-4.3.1/libavutil/tests/crc.c</CODE></A>
<UL>
<LI><STRONG>IV</STRONG> 1 codeword (before XorOut stage)
<UL>
<LI>1999 bytes (<CODE>i+i*i</CODE>) plus <CODE>3F0A451F</CODE> (source: plus <CODE>C0F5BAE0</CODE>)</LI>
</UL>
</LI>
</UL>
</LI>
<LI>Created: 30 March 2005</LI>
<LI>Updated: 2 January 2021</LI>
</UL>

<H3><A NAME="crc.cat.crc-32-iscsi">CRC-32/ISCSI</A></H3>
<P CLASS="attested"><CODE>width=32  poly=0x1edc6f41  init=0xffffffff  refin=true  refout=true  xorout=0xffffffff  check=0xe3069283  residue=0xb798b438  name="CRC-32/ISCSI"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-32-base91-c"><STRONG>CRC-32/BASE91-C</STRONG></A>, <A NAME="crc.cat.crc-32-castagnoli"><STRONG>CRC-32/CASTAGNOLI</STRONG></A>, <A NAME="crc.cat.crc-32-interlaken"><STRONG>CRC-32/INTERLAKEN</STRONG></A>, <A NAME="crc.cat.crc-32c"><STRONG>CRC-32C</STRONG></A></LI>
<LI><A HREF="https://tools.ietf.org/html/rfc7143">IETF RFC 7143</A> (April 2014)
<UL>
<LI><STRONG>I</STRONG> Full definition (except Check) (Section 13.1, pp.230&ndash;1)</LI>
</UL>
</LI>
<LI>The Interlaken Alliance (7 October 2008), <A HREF="http://interlakenalliance.com/wp-content/uploads/2019/12/Interlaken_Protocol_Definition_v1.2.pdf">Interlaken Protocol Definition</A>, version 1.2
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly (Section 5.4.6, p.33)</LI>
<LI><STRONG>I</STRONG> Definition: Init, RefIn, RefOut, XorOut (Appendix B, p.48)</LI>
</UL>
</LI>
<LI>Dipl. Inf. Johann F. L&ouml;fflmann (30 July 2006), Jacksum 1.7.0
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>Greg Cook (30 December 2018), <A HREF="http://regregex.bbcmicro.net/#prog.base91">Base91</A> level 1 version 3.01
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
<LI><STRONG>III</STRONG> Full mathematical description</LI>
<LI><STRONG>III</STRONG> All parameters</LI>
<LI><STRONG>III</STRONG> Code: C</LI>
</UL>
</LI>
<LI>Mark Bakke, Julian Satran, Venkat Rangan (May&ndash;June 2001), <A HREF="https://www.pdl.cmu.edu/mailinglists/ips/mail/msg04970.html">IP Storage Mailing List thread</A>
<UL>
<LI><STRONG>III</STRONG> All parameters (except Residue) (Bakke, Rangan)</LI>
<LI><STRONG>III</STRONG> Definition: Width, Poly, Init, XorOut (Satran)</LI>
<LI><STRONG>III</STRONG> Code: C (Rangan)</LI>
<LI><STRONG>IV</STRONG> 3 codewords (Bakke)
<UL>
<LI><CODE>00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;00000000&#8203;AA36918A</CODE></LI>
<LI><CODE>FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;FFFFFFFF&#8203;43ABA862</CODE></LI>
<LI><CODE>00010203&#8203;04050607&#8203;08090A0B&#8203;0C0D0E0F&#8203;10111213&#8203;14151617&#8203;18191A1B&#8203;1C1D1E1F&#8203;4E79DD46</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Created: 10 September 2005</LI>
<LI>Updated: 28 December 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-32-iso-hdlc">CRC-32/ISO-HDLC</A></H3>
<P CLASS="attested"><CODE>width=32  poly=0x04c11db7  init=0xffffffff  refin=true  refout=true  xorout=0xffffffff  check=0xcbf43926  residue=0xdebb20e3  name="CRC-32/ISO-HDLC"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-32"><STRONG>CRC-32</STRONG></A>, <A NAME="crc.cat.crc-32-adccp"><STRONG>CRC-32/ADCCP</STRONG></A>, <A NAME="crc.cat.crc-32-v-42"><STRONG>CRC-32/V-42</STRONG></A>, <A NAME="crc.cat.crc-32-xz"><STRONG>CRC-32/XZ</STRONG></A>, <A NAME="crc.cat.pkzip"><STRONG>PKZIP</STRONG></A></LI>
<LI>HDLC is defined in ISO/IEC 13239.</LI>
<LI><A HREF="https://www.itu.int/rec/T-REC-V.42/en">ITU-T Recommendation V.42</A> (March 2002)
<UL>
<LI><STRONG>I</STRONG> Definition: Residue; full mathematical description (Section 8.1.1.6.2, p.17)</LI>
</UL>
</LI>
<LI>AUTOSAR (30 November 2020), <A HREF="https://www.autosar.org/standards/classic-platform/">AUTOSAR Classic Platform</A> release R20-11, <A HREF="https://www.autosar.org/fileadmin/user_upload/standards/classic/20-11/AUTOSAR_SWS_CRCLibrary.pdf">Specification of CRC Routines</A>
<UL>
<LI><STRONG>I</STRONG> Comprehensive primer on CRC theory (Section 7.1, pp.18&ndash;21)</LI>
<LI><STRONG>I</STRONG> All parameters (Section 7.2.3.1, p.26)</LI>
<LI><STRONG>IV</STRONG> 7 codewords (Section 7.2.3.1, p.26)
<UL>
<LI><CODE>00000000&#8203;1CDF4421</CODE></LI>
<LI><CODE>F2018377&#8203;9DAB24</CODE></LI>
<LI><CODE>0FAA0055&#8203;87B2C9B6</CODE></LI>
<LI><CODE>00FF5511&#8203;1262A032</CODE></LI>
<LI><CODE>332255AA&#8203;BBCCDDEE&#8203;FF3D86AE&#8203;B0</CODE></LI>
<LI><CODE>926B559B&#8203;A2DE9C</CODE></LI>
<LI><CODE>FFFFFFFF&#8203;FFFFFFFF</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Lasse Collin, Igor Pavlov <DFN>et al.</DFN> (27 August 2009), <A HREF="https://tukaani.org/xz/xz-file-format.txt">The .xz file format</A>, version 1.0.4
<UL>
<LI><STRONG>I</STRONG> Code: C (Section 6)</LI>
</UL>
</LI>
<LI><A HREF="https://tools.ietf.org/html/rfc1662">IETF RFC 1662</A> (July 1994)
<UL>
<LI><STRONG>I</STRONG> Code: C (Appendix C.3, pp.21&ndash;3)</LI>
</UL>
</LI>
<LI>PKWARE Inc. (1 February 1993), PKZIP 2.04g
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>Frank J. T. Wojcik, Guy Eric Schalnat, Andreas Dilger, Glenn Randers-Pehrson <DFN>et al.</DFN> (15 October 1999), libpng 1.0.5
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>Lasse Collin, Igor Pavlov <DFN>et al.</DFN> (21 May 2011), XZ Utils 5.0.3
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>Lammert Bies (August 2011), <A HREF="https://www.lammertbies.nl/comm/info/crc-calculation">CRC calculator</A>
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>Dr Ross N. Williams (19 August 1993), <A HREF="https://web.archive.org/web/20190527220400/http://www.ross.net/crc/download/crc_v3.txt">"A Painless Guide to CRC Error Detection Algorithms"</A> (courtesy of the Internet Archive)
<UL>
<LI><STRONG>III</STRONG> All parameters (except Residue)</LI>
</UL>
</LI>
<LI>Emil Lenchak, Texas Instruments, Inc. (June 2018), <A HREF="https://www.ti.com/lit/an/slaa221a/slaa221a.pdf">CRC Implementation With MSP430</A>
<UL>
<LI><STRONG>III</STRONG> All parameters (except Residue) (Section 4.6, p.6)</LI>
</UL>
</LI>
<LI>Berndt M. Gammel (29 October 2006), <A HREF="https://www.matpack.de/">Matpack 1.9.1</A> class <CODE>MpCRC</CODE> documentation
<UL>
<LI><STRONG>III</STRONG> All parameters (except Residue)</LI>
</UL>
</LI>
<LI>Cisco Systems (September 2013), <A HREF="https://meraki.cisco.com/lib/pdf/meraki_whitepaper_air_marshal.pdf">Meraki Air Marshal white paper</A>
<UL>
<LI><STRONG>IV</STRONG> 1 codeword (p.9)
<UL>
<LI><CODE>C0083000&#8203;28CFE952&#8203;1D3B08EA&#8203;449900E8&#8203;08EA4499&#8203;00E83001&#8203;02007E64&#8203;9416</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Ryan Luecke, James Lyons (11 October 2011), <A HREF="https://blog.box.com/blog/crc32-checksums-the-good-the-bad-and-the-ugly/">CRC32 Checksums; The Good, The Bad, And The Ugly</A>
<UL>
<LI><STRONG>IV</STRONG> 1 codeword
<UL>
<LI><CODE>6173640A&#8203;CEDE2D15</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 30 March 2005</LI>
<LI>Updated: 2 January 2021</LI>
</UL>

<H3><A NAME="crc.cat.crc-32-jamcrc">CRC-32/JAMCRC</A></H3>
<P CLASS="confirmed"><CODE>width=32  poly=0x04c11db7  init=0xffffffff  refin=true  refout=true  xorout=0x00000000  check=0x340bc6d9  residue=0x00000000  name="CRC-32/JAMCRC"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="confirmed">confirmed</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.jamcrc"><STRONG>JAMCRC</STRONG></A></LI>
<LI>PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>Altera Corporation (April 1999), <A HREF="https://web.archive.org/web/20070221144121/http://www.msc.rl.ac.uk/europractice/vendors/dscrc.pdf">crc MegaCore Function Data Sheet</A>, version 2 (courtesy of the Internet Archive)
<UL>
<LI><STRONG>III</STRONG> All parameters (except Residue) (p.6)</LI>
</UL>
</LI>
<LI>Created: 30 March 2005</LI>
<LI>Updated: 21 November 2018</LI>
</UL>

<H3><A NAME="crc.cat.crc-32-mef">CRC-32/MEF</A></H3>
<P CLASS="attested"><CODE>width=32  poly=0x741b8cd7  init=0xffffffff  refin=true  refout=true  xorout=0x00000000  check=0xd2c22f51  residue=0x00000000  name="CRC-32/MEF"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Reference courtesy of Greg Nelson, Grammatech Inc.</LI>
<LI>Mayo Foundation (19 February 2016), <A HREF="https://github.com/msel-source/meflib/raw/multiplatform/MEF%203%20Specification.pdf">Multiscale Electrophysiology File Format Version 3.0 (MEF3) specification</A> (courtesy of GitHub) <!-- does not name its authors, but uploaded to GitHub by Ben Brinkmann and formerly hosted on the Mayo Foundation web site. Version at https://web.archive.org/web/20170528095458/http://msel.mayo.edu/files/codes/MEF%203%20Specification.pdf is dated 7 October 2015 -->
<UL>
<LI><STRONG>I</STRONG> Definition: Init (p.90), Width (p.91)</LI>
<LI><STRONG>I</STRONG> Citation for Poly: "Koopman" (p.91)</LI>
</UL>
</LI>
<LI>Dan Crepeau (27 Sep 2021), <A HREF="https://github.com/msel-source/sampledata/raw/master/sample_data.mefd.tar">Sample MEF 3.0 data</A> (tar archive)
<UL>
<LI><STRONG>II</STRONG> Recording confirming implementation with at least 32 codewords (selection)
<UL>
<LI><CODE>4E6F7465&#8203;00010000&#8203;30000000&#8203;40F2E0C8&#8203;E6740400&#8203;54686973&#8203;20697320&#8203;74686520&#8203;74657874&#8203;206F6620&#8203;74686520&#8203;66697273&#8203;74206E6F&#8203;74652E00&#8203;7E7E7E7E&#8203;7E7E7E7E&#8203;7E7E7E7E&#8203;42342AB7</CODE></LI>
<LI><CODE>4E6F7465&#8203;00010000&#8203;30000000&#8203;C08879C9&#8203;E6740400&#8203;54686973&#8203;20697320&#8203;74686520&#8203;74657874&#8203;206F6620&#8203;74686520&#8203;7365636F&#8203;6E64206E&#8203;6F74652E&#8203;007E7E7E&#8203;7E7E7E7E&#8203;7E7E7E7E&#8203;78CE3BA8</CODE></LI>
<LI><CODE>42342AB7&#8203;4E6F7465&#8203;00010000&#8203;30000000&#8203;40F2E0C8&#8203;E6740400&#8203;54686973&#8203;20697320&#8203;74686520&#8203;74657874&#8203;206F6620&#8203;74686520&#8203;66697273&#8203;74206E6F&#8203;74652E00&#8203;7E7E7E7E&#8203;7E7E7E7E&#8203;7E7E7E7E&#8203;78CE3BA8&#8203;4E6F7465&#8203;00010000&#8203;30000000&#8203;C08879C9&#8203;E6740400&#8203;54686973&#8203;20697320&#8203;74686520&#8203;74657874&#8203;206F6620&#8203;74686520&#8203;7365636F&#8203;6E64206E&#8203;6F74652E&#8203;007E7E7E&#8203;7E7E7E7E&#8203;7E7E7E7E&#8203;266D44ED</CODE></LI>
<LI><CODE>4E6F7465&#8203;00010000&#8203;00040000&#8203;00000000&#8203;40F2E0C8&#8203;E6740400&#8203;4E6F7465&#8203;00010000&#8203;48040000&#8203;00000000&#8203;C08879C9&#8203;E6740400&#8203;D1D99813</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Matt Stead, Ben Brinkmann, Dan Crepeau, Mayo Foundation (2013), Multiscale Electrophysiology Format (MEF) version 3.0 library, modules <A HREF="https://github.com/msel-source/meflib/blob/multiplatform/meflib/meflib.c"><CODE>meflib/meflib.c</CODE></A>, <A HREF="https://github.com/msel-source/meflib/blob/multiplatform/meflib/meflib.h"><CODE>meflib/meflib.h</CODE></A>
<UL>
<LI><STRONG>III</STRONG> Code: C</LI>
</UL>
</LI>
<LI>Created: 10 January 2022</LI>
</UL>

<H3><A NAME="crc.cat.crc-32-mpeg-2">CRC-32/MPEG-2</A></H3>
<P CLASS="attested"><CODE>width=32  poly=0x04c11db7  init=0xffffffff  refin=false  refout=false  xorout=0x00000000  check=0x0376e6e7  residue=0x00000000  name="CRC-32/MPEG-2"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>ISO/IEC 13818-1:2000 &mdash; ITU-T Recommendation H.222.0 (February 2000)
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly, Init, RefIn, RefOut, Residue (Annex A, p.97)</LI>
<LI><STRONG>I</STRONG> CRC checking algorithm (Annex A, p.97)</LI>
<LI><STRONG>I</STRONG> Partial shift register diagram (Annex A, p.97)</LI>
</UL>
</LI>
<LI>Dipl. Inf. Johann F. L&ouml;fflmann (30 July 2006), Jacksum 1.7.0
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>VideoLAN Organization (10 June 2020), <A HREF="https://www.videolan.org/vlc/">VLC 3.0.11</A> module <A HREF="https://www.videolan.org/developers/vlc/modules/mux/mpeg/ps.c"><CODE>vlc-3.0.11/modules/mux/mpeg/ps.c</CODE></A>
<UL>
<LI><STRONG>III</STRONG> Code: C</LI>
</UL>
</LI>
<LI>Created: 8 October 2008</LI>
<LI>Updated: 2 January 2021</LI>
</UL>

<H3><A NAME="crc.cat.crc-32-xfer">CRC-32/XFER</A></H3>
<P CLASS="confirmed"><CODE>width=32  poly=0x000000af  init=0x00000000  refin=false  refout=false  xorout=0x00000000  check=0xbd0be338  residue=0x00000000  name="CRC-32/XFER"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="confirmed">confirmed</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.xfer"><STRONG>XFER</STRONG></A></LI>
<LI>Jon Welch (12 January 2007), <A HREF="https://www.g7jjf.com/bbc.htm">XFER in C, version 5.1a</A>
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling (1992), <!-- A HREF="http://apps.nrbook.com/c/index.html" --><CITE>Numerical recipes in C: The art of scientific computing</CITE><!-- /A -->, 2nd ed., Cambridge University Press, ISBN 0-521-43108-5
<UL>
<LI><STRONG>III</STRONG> Presents polynomial and its properties (p.299)</LI>
</UL>
</LI>
<LI>Created: 30 March 2005</LI>
<LI>Updated: 2 January 2021</LI>
</UL>

<H3><A NAME="crc.cat-bits.40"></A><A NAME="crc.cat.crc-40-gsm">CRC-40/GSM</A></H3>
<P CLASS="academic"><CODE>width=40  poly=0x0004820009  init=0x0000000000  refin=false  refout=false  xorout=0xffffffffff  check=0xd4164fc646  residue=0xc4ff8071ff  name="CRC-40/GSM"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>Correction to XorOut by Mark Cammidge, Peralex Electronics (Pty) Ltd.</LI>
<LI>ETSI <A HREF="https://www.etsi.org/deliver/etsi_ts/100900_100999/100909/08.09.00_60/ts_100909v080900p.pdf">TS 100 909</A> version 8.9.0 (January 2005)
<UL>
<LI><STRONG>I</STRONG> Full mathematical description (Section 4.1.2, p.61)</LI>
</UL>
</LI>
<LI>Patrick Geremia, Texas Instruments, Inc. (April 1999), <A HREF="https://www.ti.com/lit/an/spra530/spra530.pdf">Cyclic Redundancy Check Computation: An Implementation Using the TMS320C54x</A>
<UL>
<LI><STRONG>III</STRONG> Definition: Width, Poly (p.5)</LI>
<LI><STRONG>III</STRONG> Code: TMS320C54x assembler (Appendix E, pp.30&ndash;33)</LI>
</UL>
</LI>
<LI>Berndt M. Gammel (29 October 2006), <A HREF="https://www.matpack.de/">Matpack 1.9.1</A> class <CODE>MpCRC</CODE> documentation
<UL>
<LI><STRONG>III</STRONG> Definition: Width, Poly</LI>
</UL>
</LI>
<LI>Created: 10 December 2009</LI>
<LI>Updated: 25 March 2019</LI>
</UL>

<H3><A NAME="crc.cat-bits.64"></A><A NAME="crc.cat.crc-64-ecma-182">CRC-64/ECMA-182</A></H3>
<P CLASS="academic"><CODE>width=64  poly=0x42f0e1eba9ea3693  init=0x0000000000000000  refin=false  refout=false  xorout=0x0000000000000000  check=0x6c40df5f0b497347  residue=0x0000000000000000  name="CRC-64/ECMA-182"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="academic">academic</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-64"><STRONG>CRC-64</STRONG></A></LI>
<LI>Used in DLT-1 tape cartridges.  For the algorithm often misidentified as ECMA, see <A HREF="#crc.cat.crc-64-xz">CRC-64/XZ</A>.</LI>
<LI><A HREF="https://www.ecma-international.org/publications/files/ECMA-ST/Ecma-182.pdf">ECMA standard ECMA-182</A> (December 1992) &mdash; ISO/IEC 13421:1993
<UL>
<LI><STRONG>I</STRONG> Full mathematical description (Annex B, p.51)</LI>
</UL>
</LI>
<LI>Created: 6 April 2009</LI>
<LI>Updated: 21 November 2018</LI>
</UL>

<H3><A NAME="crc.cat.crc-64-go-iso">CRC-64/GO-ISO</A></H3>
<P CLASS="confirmed"><CODE>width=64  poly=0x000000000000001b  init=0xffffffffffffffff  refin=true  refout=true  xorout=0xffffffffffffffff  check=0xb90956c775a41001  residue=0x5300000000000000  name="CRC-64/GO-ISO"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="confirmed">confirmed</SPAN></LI>
<LI>Go implementation reference contributed by "freetrader".</LI>
<LI><A HREF="https://golang.org/AUTHORS">The Go Authors</A>, <A HREF="https://golang.org/">The Go Programming Language</A>, package <A HREF="https://golang.org/pkg/hash/crc64/"><CODE>crc64</CODE></A>
<UL>
<LI><STRONG>II</STRONG> Implementation (using constant <CODE>crc64.ISO</CODE>)</LI>
</UL>
</LI>
<LI><A HREF="https://golang.org/AUTHORS">The Go Authors</A> (26 January 2017), The Go Programming Language, module <A HREF="https://golang.org/src/hash/crc64/crc64.go"><CODE>src/hash/crc64/crc64.go</CODE></A>
<UL>
<LI><STRONG>III</STRONG> Code: Go</LI>
</UL>
</LI>
<LI><A HREF="https://golang.org/AUTHORS">The Go Authors</A> (26 January 2017), The Go Programming Language, module <A HREF="https://golang.org/src/hash/crc64/crc64_test.go"><CODE>src/hash/crc64/crc64_test.go</CODE></A>
<UL>
<LI><STRONG>IV</STRONG> 32 codewords (selection)
<UL>
<LI><CODE>00000000&#8203;00000000</CODE></LI>
<LI><CODE>61000000&#8203;00000020&#8203;34</CODE></LI>
<LI><CODE>61620000&#8203;00000020&#8203;C436</CODE></LI>
<LI><CODE>61626300&#8203;00000020&#8203;C47637</CODE></LI>
<LI><CODE>61626364&#8203;00000020&#8203;C4766733</CODE></LI>
<LI><CODE>61626364&#8203;65000020&#8203;C47667D3&#8203;32</CODE></LI>
<LI><CODE>61626364&#8203;65660020&#8203;C47667D3&#8203;0230</CODE></LI>
<LI><CODE>61626364&#8203;65666720&#8203;C47667D3&#8203;02B031</CODE></LI>
<LI><CODE>61626364&#8203;65666768&#8203;C47667D3&#8203;02B0210E</CODE></LI>
<LI><CODE>61626364&#8203;65666768&#8203;697667D3&#8203;02B0216E&#8203;8B</CODE></LI>
<LI><CODE>61626364&#8203;65666768&#8203;696A67D3&#8203;02B0216E&#8203;5B7F</CODE></LI>
<LI><CODE>4E657061&#8203;6C207072&#8203;656D6965&#8203;7220776F&#8203;6E277420&#8203;72657369&#8203;676E2EA6&#8203;28EFD66A&#8203;865552</CODE></LI>
<LI><CODE>73697A65&#8203;3A202061&#8203;2E6F7574&#8203;3A202062&#8203;6164206D&#8203;61676963&#8203;D2ADCDDA&#8203;653C55F3</CODE></LI>
<LI><CODE>54686520&#8203;6D616A6F&#8203;72207072&#8203;6F626C65&#8203;6D206973&#8203;20776974&#8203;68207365&#8203;6E646D61&#8203;696C2E20&#8203;202D4D61&#8203;726B2048&#8203;6F72746F&#8203;6EB976A6&#8203;8740035E&#8203;9D</CODE></LI>
<LI><CODE>54686973&#8203;20697320&#8203;61207465&#8203;7374206F&#8203;66207468&#8203;6520656D&#8203;65726765&#8203;6E637920&#8203;62726F61&#8203;64636173&#8203;74207379&#8203;7374656D&#8203;2E613B50&#8203;6B00F1FC&#8203;E7</CODE></LI>
</UL>
</UL>
</LI>
<LI>Unique effective solution of codeword set (unverified)</LI>
<LI>Created: 28 January 2017</LI>
<LI>Updated: 5 June 2018</LI>
</UL>

<H3><A NAME="crc.cat.crc-64-ms">CRC-64/MS</A></H3>
<P CLASS="attested"><CODE>width=64  poly=0x259c84cba6426349  init=0xffffffffffffffff  refin=true  refout=true  xorout=0x0000000000000000  check=0x75d4b74f024eceea  residue=0x0000000000000000  name="CRC-64/MS"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Reference courtesy of Greg Nelson, Grammatech Inc.</LI>
<LI>Reportedly also used in <CITE>AppID</CITE> hashes and the <CODE>thumbcache.dll</CODE> file.</LI>
<LI>Microsoft Corporation (25 June 2021), <A HREF="https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-FCIADS/%5bMS-FCIADS%5d.pdf">[MS-FCIADS]: File Classification Infrastructure Alternate Data Stream (ADS) File Format</A>
<UL>
<LI><STRONG>I</STRONG> Full mathematical description (Section 2.8, pp.11&ndash;12)</LI>
<LI><STRONG>IV</STRONG> 1 codeword (Section 3, pp.13&ndash;15)
<UL>
<LI><CODE>EBDBF499&#8203;B234C901&#8203;8A000000&#8203;00000000&#8203;00000000&#8203;02000000&#8203;D8AE24AF&#8203;CF9C941F&#8203;01000000&#8203;08000000&#8203;36000000&#8203;2E000000&#8203;42007500&#8203;73006900&#8203;6E006500&#8203;73007300&#8203;49006D00&#8203;70006100&#8203;63007400&#8203;00004800&#8203;42004900&#8203;00000700&#8203;00000800&#8203;00001C00&#8203;00001800&#8203;00005000&#8203;49004900&#8203;00003100&#8203;00005365&#8203;C6807317&#8203;DACE</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Hexacorn Ltd (30 April 2013), <A HREF="https://www.hexacorn.com/blog/2013/04/30/jumplists-file-names-and-appid-calculator/">JumpLists file names and AppID calculator</A>
<UL>
<LI><STRONG>II</STRONG> Implementation (with <CITE>AppID</CITE> string translation)</LI>
<LI><STRONG>III</STRONG> Code: Perl</LI>
<LI><STRONG>IV</STRONG> 7 codewords
<UL>
<LI><CODE>4D004900&#8203;43005200&#8203;4F005300&#8203;4F004600&#8203;54002E00&#8203;49004E00&#8203;54004500&#8203;52004E00&#8203;45005400&#8203;45005800&#8203;50004C00&#8203;4F005200&#8203;45005200&#8203;2E004400&#8203;45004600&#8203;41005500&#8203;4C005400&#8203;A149B5EA&#8203;6DB8C828</CODE></LI>
<LI><CODE>4D004900&#8203;43005200&#8203;4F005300&#8203;4F004600&#8203;54002E00&#8203;57004900&#8203;4E004400&#8203;4F005700&#8203;53002E00&#8203;53005400&#8203;49004300&#8203;4B005900&#8203;4E004F00&#8203;54004500&#8203;530058C7&#8203;73F29AD5&#8203;7E33</CODE></LI>
<LI><CODE>7B003100&#8203;41004300&#8203;31003400&#8203;45003700&#8203;37002D00&#8203;30003200&#8203;45003700&#8203;2D003400&#8203;45003500&#8203;44002D00&#8203;42003700&#8203;34003400&#8203;2D003200&#8203;45004200&#8203;31004100&#8203;45003500&#8203;31003900&#8203;38004200&#8203;37007D00&#8203;5C004E00&#8203;4F005400&#8203;45005000&#8203;41004400&#8203;2E004500&#8203;58004500&#8203;2B4EC2C1&#8203;69DC9C9B</CODE></LI>
<LI><CODE>7B004400&#8203;36003500&#8203;32003300&#8203;31004200&#8203;30002D00&#8203;42003200&#8203;46003100&#8203;2D003400&#8203;38003500&#8203;37002D00&#8203;41003400&#8203;43004500&#8203;2D004100&#8203;38004500&#8203;37004300&#8203;36004500&#8203;41003700&#8203;44003200&#8203;37007D00&#8203;5C004E00&#8203;4F005400&#8203;45005000&#8203;41004400&#8203;2E004500&#8203;58004500&#8203;237ED143&#8203;CB0E8E91</CODE></LI>
<LI><CODE>7B003900&#8203;30003500&#8203;45003600&#8203;33004200&#8203;36002D00&#8203;43003100&#8203;42004600&#8203;2D003400&#8203;39003400&#8203;45002D00&#8203;42003200&#8203;39004300&#8203;2D003600&#8203;35004200&#8203;37003300&#8203;32004400&#8203;33004400&#8203;32003100&#8203;41007D00&#8203;5C004900&#8203;45005800&#8203;50004C00&#8203;4F005200&#8203;45002E00&#8203;45005800&#8203;450006B6&#8203;151674EB&#8203;A0C3</CODE></LI>
<LI><CODE>7B003600&#8203;44003800&#8203;30003900&#8203;33003700&#8203;37002D00&#8203;36004100&#8203;46003000&#8203;2D003400&#8203;34003400&#8203;42002D00&#8203;38003900&#8203;35003700&#8203;2D004100&#8203;33003700&#8203;37003300&#8203;46003000&#8203;32003200&#8203;30003000&#8203;45007D00&#8203;5C004900&#8203;45005800&#8203;50004C00&#8203;4F005200&#8203;45002E00&#8203;45005800&#8203;4500CE6D&#8203;913EB0E3&#8203;70E2</CODE></LI>
<LI><CODE>7B003700&#8203;43003500&#8203;41003400&#8203;30004500&#8203;46002D00&#8203;41003000&#8203;46004200&#8203;2D003400&#8203;42004600&#8203;43002D00&#8203;38003700&#8203;34004100&#8203;2D004300&#8203;30004600&#8203;32004500&#8203;30004200&#8203;39004600&#8203;41003800&#8203;45007D00&#8203;5C004900&#8203;45005800&#8203;50004C00&#8203;4F005200&#8203;45002E00&#8203;45005800&#8203;4500A5A7&#8203;93B7B47F&#8203;220E</CODE></LI>
</UL>
</LI>
</UL>
</LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 7 January 2022</LI>
</UL>

<H3><A NAME="crc.cat.crc-64-we">CRC-64/WE</A></H3>
<P CLASS="confirmed"><CODE>width=64  poly=0x42f0e1eba9ea3693  init=0xffffffffffffffff  refin=false  refout=false  xorout=0xffffffffffffffff  check=0x62ec59e3f1a4f00a  residue=0xfcacbebd5931a992  name="CRC-64/WE"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="confirmed">confirmed</SPAN></LI>
<LI>Wolfgang Ehrhardt (27 March 2012), <!-- A HREF="http://www.wolfgang-ehrhardt.de/crchash_en.html" -->CRC/Hash plugin for FAR Manager<!--/A -->
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI>Created: 8 November 2009</LI>
<LI>Updated: 28 December 2019</LI>
</UL>

<H3><A NAME="crc.cat.crc-64-xz">CRC-64/XZ</A></H3>
<P CLASS="attested"><CODE>width=64  poly=0x42f0e1eba9ea3693  init=0xffffffffffffffff  refin=true  refout=true  xorout=0xffffffffffffffff  check=0x995dc9bbdf1939fa  residue=0x49958c9abd7d353f  name="CRC-64/XZ"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>Alias: <A NAME="crc.cat.crc-64-go-ecma"><STRONG>CRC-64/GO-ECMA</STRONG></A></LI>
<LI>An algorithm commonly misidentified as ECMA.  For the true ECMA algorithm see <A HREF="#crc.cat.crc-64-ecma-182">CRC-64/ECMA-182</A>.</LI>
<LI>Go implementation reference contributed by "freetrader".</LI>
<LI>AUTOSAR (30 November 2020), <A HREF="https://www.autosar.org/standards/classic-platform/">AUTOSAR Classic Platform</A> release R20-11, <A HREF="https://www.autosar.org/fileadmin/user_upload/standards/classic/20-11/AUTOSAR_SWS_CRCLibrary.pdf">Specification of CRC Routines</A>
<UL>
<LI><STRONG>I</STRONG> Comprehensive primer on CRC theory (Section 7.1, pp.18&ndash;21)</LI>
<LI><STRONG>I</STRONG> All parameters (Section 7.2.4.1, p.28)</LI>
<LI><STRONG>IV</STRONG> 7 codewords (Section 7.2.4.1, p.29)
<UL>
<LI><CODE>00000000&#8203;4B9F1B1E&#8203;3586A5F4</CODE></LI>
<LI><CODE>F20183C6&#8203;F1648166&#8203;279C31</CODE></LI>
<LI><CODE>0FAA0055&#8203;75157C66&#8203;F7D0C554</CODE></LI>
<LI><CODE>00FF5511&#8203;E604077E&#8203;BE2238A6</CODE></LI>
<LI><CODE>332255AA&#8203;BBCCDDEE&#8203;FFD5E5A8&#8203;19B2CE1E&#8203;70</CODE></LI>
<LI><CODE>926B554E&#8203;3E9FB5A9&#8203;96AA5F</CODE></LI>
<LI><CODE>FFFFFFFF&#8203;00000000&#8203;FFFFFFFF</CODE></LI>
</UL>
</LI>
</UL>
<LI>Lasse Collin, Igor Pavlov <DFN>et al.</DFN> (27 August 2009), <A HREF="https://tukaani.org/xz/xz-file-format.txt">The .xz file format</A>, version 1.0.4
<UL>
<LI><STRONG>I</STRONG> Code: C (Section 6)</LI>
</UL>
</LI>
<LI>Lasse Collin, Igor Pavlov <DFN>et al.</DFN> (21 May 2011), XZ Utils 5.0.3
<UL>
<LI><STRONG>II</STRONG> Implementation</LI>
</UL>
</LI>
<LI><A HREF="https://golang.org/AUTHORS">The Go Authors</A>, <A HREF="https://golang.org/">The Go Programming Language</A>, package <A HREF="https://golang.org/pkg/hash/crc64/"><CODE>crc64</CODE></A>
<UL>
<LI><STRONG>II</STRONG> Implementation (using constant <CODE>crc64.ECMA</CODE>)</LI>
</UL>
</LI>
<LI><A HREF="https://golang.org/AUTHORS">The Go Authors</A> (26 January 2017), The Go Programming Language, module <A HREF="https://golang.org/src/hash/crc64/crc64.go"><CODE>src/hash/crc64/crc64.go</CODE></A>
<UL>
<LI><STRONG>III</STRONG> Code: Go</LI>
</UL>
</LI>
<LI><A HREF="https://golang.org/AUTHORS">The Go Authors</A> (26 January 2017), The Go Programming Language, module <A HREF="https://golang.org/src/hash/crc64/crc64_test.go"><CODE>src/hash/crc64/crc64_test.go</CODE></A>
<UL>
<LI><STRONG>IV</STRONG> 32 codewords (selection)
<UL>
<LI><CODE>00000000&#8203;00000000</CODE></LI>
<LI><CODE>61052B65&#8203;2E778402&#8203;33</CODE></LI>
<LI><CODE>616246B0&#8203;840E2073&#8203;65BC</CODE></LI>
<LI><CODE>61626327&#8203;76271A4A&#8203;09D82C</CODE></LI>
<LI><CODE>61626364&#8203;BA60596E&#8203;59289D3C</CODE></LI>
<LI><CODE>61626364&#8203;65F29508&#8203;FB58DF0B&#8203;04</CODE></LI>
<LI><CODE>61626364&#8203;6566F400&#8203;A745859F&#8203;8ED0</CODE></LI>
<LI><CODE>61626364&#8203;65666766&#8203;0E71CCA8&#8203;A320EC</CODE></LI>
<LI><CODE>61626364&#8203;65666768&#8203;590C7A64&#8203;0AF3B467</CODE></LI>
<LI><CODE>61626364&#8203;65666768&#8203;698EEF56&#8203;9DC8F666&#8203;99</CODE></LI>
<LI><CODE>61626364&#8203;65666768&#8203;696AF473&#8203;57CD2E3A&#8203;0932</CODE></LI>
<LI><CODE>4E657061&#8203;6C207072&#8203;656D6965&#8203;7220776F&#8203;6E277420&#8203;72657369&#8203;676E2E41&#8203;5A746AB1&#8203;F20E79</CODE></LI>
<LI><CODE>73697A65&#8203;3A202061&#8203;2E6F7574&#8203;3A202062&#8203;6164206D&#8203;61676963&#8203;4D3AD6D8&#8203;6CE4B5E3</CODE></LI>
<LI><CODE>54686520&#8203;6D616A6F&#8203;72207072&#8203;6F626C65&#8203;6D206973&#8203;20776974&#8203;68207365&#8203;6E646D61&#8203;696C2E20&#8203;202D4D61&#8203;726B2048&#8203;6F72746F&#8203;6E51A0F2&#8203;946BAF5A&#8203;86</CODE></LI>
<LI><CODE>54686973&#8203;20697320&#8203;61207465&#8203;7374206F&#8203;66207468&#8203;6520656D&#8203;65726765&#8203;6E637920&#8203;62726F61&#8203;64636173&#8203;74207379&#8203;7374656D&#8203;2E72BC5B&#8203;C17F18DB&#8203;27</CODE></LI>
</UL>
</UL>
</LI>
<LI>Unique effective solution of codeword set</LI>
<LI>Created: 4 July 2011</LI>
<LI>Updated: 6 May 2019</LI>
</UL>

<H3><A NAME="crc.cat-bits.82"></A><A NAME="crc.cat.crc-82-darc">CRC-82/DARC</A></H3>
<P CLASS="attested"><CODE>width=82  poly=0x0308c0111011401440411  init=0x000000000000000000000  refin=true  refout=true  xorout=0x000000000000000000000  check=0x09ea83f625023801fd612  residue=0x000000000000000000000  name="CRC-82/DARC"</CODE></P>
<UL>
<LI>Class: <SPAN CLASS="attested">attested</SPAN></LI>
<LI>The single codeword is supported by the codewords confirming <A HREF="#crc.cat.crc-6-darc">CRC-6/DARC</A>, defined identically apart from Width, Poly in the same standard. The source presents the codeword in transmission order, whereas the codeword is composed of the bytes of data sent LSB first.  The example input message is 190 bits long, considering that the inner CRC is 14 bits.  The CRC mask is &hellip;<CODE>C0 FF FF FF FF FF FF FF FF FF FF</CODE>.</LI>
<LI>ETSI <A HREF="https://www.etsi.org/deliver/etsi_en/300700_300799/300751/01.02.01_60/en_300751v010201p.pdf">EN 300 751</A> version 1.2.1 (January 2003)
<UL>
<LI><STRONG>I</STRONG> Definition: Width, Poly (Section 11.1, p.67)</LI>
<LI><STRONG>I</STRONG> Definition: RefIn, RefOut (Section 12, pp.69&ndash;70)</LI>
<LI><STRONG>IV</STRONG> 1 codeword (Section 11.1, p.67)
<UL>
<LI><CODE>02000102&#8203;37205052&#8203;4F4A4543&#8203;54204D41&#8203;494E4D45&#8203;4E553B48&#8203;42406500&#8203;1049B5FB&#8203;9ADE</CODE> (source: <CODE>40008040&#8203;EC040A4A&#8203;F252A2C2&#8203;2A04B282&#8203;9272B2A2&#8203;72AADC12&#8203;4202A600&#8203;0892ADDF&#8203;597B</CODE>)</LI>
</UL>
</LI>
<LI>See section 12 for details of the transmission order.</LI>
</UL>
</LI>
<LI><SAMP>reveng -m CRC-82/DARC -X -c 02000102&#8203;37205052&#8203;4F4A4543&#8203;54204D41&#8203;494E4D45&#8203;4E553B48&#8203;42406500&#8203;1049B5FB&#8203;9ADE</SAMP> &rarr; <CODE>00000000&#8203;00000000&#8203;000000</CODE></LI>
<LI><SAMP>reveng -m CRC-82/DARC -a 1 -A 8 -r -X -c 01000000&#8203;00000000&#8203;10000000&#8203;01000000&#8203;11101100&#8203;00000100&#8203;00001010&#8203;01001010&#8203;11110010&#8203;01010010&#8203;10100010&#8203;11000010&#8203;00101010&#8203;00000100&#8203;10110010&#8203;10000010&#8203;10010010&#8203;01110010&#8203;10110010&#8203;10100010&#8203;01110010&#8203;10101010&#8203;11011100&#8203;000100</SAMP> &rarr; <CODE>40424065&#8203;001049B5&#8203;FB9ADE</CODE>
<LI>Created: 14 December 2009</LI>
<LI>Updated: 23 December 2021</LI>
</UL>

<H2><A NAME="crc.cat-summary">Summary</A></H2>
<TABLE CLASS="border">
<CAPTION>Summary of the CRC catalogue</CAPTION>
<TBODY>
<TR ALIGN="CENTER" VALIGN="BOTTOM">
<TH ROWSPAN="2">CRC width (bits)</TH>
<TH COLSPAN="5">Records</TH>
</TR>
<TR ALIGN="CENTER" VALIGN="BOTTOM">
<TH><SPAN CLASS="attested">Attested</SPAN></TH>
<TH><SPAN CLASS="confirmed">Confirmed</SPAN></TH>
<TH><SPAN CLASS="academic">Academic</SPAN></TH>
<TH><SPAN CLASS="third-party">Third-party</SPAN></TH>
<TH>Total</TH>
</TR>
<TR ALIGN="RIGHT" VALIGN="TOP"><TD><A HREF="#crc.cat-bits.3">3</A></TD><TD>&ndash;</TD><TD>&ndash;</TD><TD>2</TD><TD>&ndash;</TD><TD>2</TD></TR>
<TR ALIGN="RIGHT" VALIGN="TOP"><TD><A HREF="#crc.cat-bits.4">4</A></TD><TD>&ndash;</TD><TD>&ndash;</TD><TD>2</TD><TD>&ndash;</TD><TD>2</TD></TR>
<TR ALIGN="RIGHT" VALIGN="TOP"><TD><A HREF="#crc.cat-bits.5">5</A></TD><TD>1</TD><TD>&ndash;</TD><TD>1</TD><TD>1</TD><TD>3</TD></TR>
<TR ALIGN="RIGHT" VALIGN="TOP"><TD><A HREF="#crc.cat-bits.6">6</A></TD><TD>2</TD><TD>&ndash;</TD><TD>3</TD><TD>&ndash;</TD><TD>5</TD></TR>
<TR ALIGN="RIGHT" VALIGN="TOP"><TD><A HREF="#crc.cat-bits.7">7</A></TD><TD>&ndash;</TD><TD>&ndash;</TD><TD>3</TD><TD>&ndash;</TD><TD>3</TD></TR>
<TR ALIGN="RIGHT" VALIGN="TOP"><TD><A HREF="#crc.cat-bits.8">8</A></TD><TD>12</TD><TD>&ndash;</TD><TD>7</TD><TD>1</TD><TD>20</TD></TR>
<TR ALIGN="RIGHT" VALIGN="TOP"><TD><A HREF="#crc.cat-bits.10">10</A></TD><TD>1</TD><TD>&ndash;</TD><TD>2</TD><TD>&ndash;</TD><TD>3</TD></TR>
<TR ALIGN="RIGHT" VALIGN="TOP"><TD><A HREF="#crc.cat-bits.11">11</A></TD><TD>1</TD><TD>&ndash;</TD><TD>1</TD><TD>&ndash;</TD><TD>2</TD></TR>
<TR ALIGN="RIGHT" VALIGN="TOP"><TD><A HREF="#crc.cat-bits.12">12</A></TD><TD>&ndash;</TD><TD>&ndash;</TD><TD>4</TD><TD>&ndash;</TD><TD>4</TD></TR>
<TR ALIGN="RIGHT" VALIGN="TOP"><TD><A HREF="#crc.cat-bits.13">13</A></TD><TD>1</TD><TD>&ndash;</TD><TD>&ndash;</TD><TD>&ndash;</TD><TD>1</TD></TR>
<TR ALIGN="RIGHT" VALIGN="TOP"><TD><A HREF="#crc.cat-bits.14">14</A></TD><TD>1</TD><TD>&ndash;</TD><TD>1</TD><TD>&ndash;</TD><TD>2</TD></TR>
<TR ALIGN="RIGHT" VALIGN="TOP"><TD><A HREF="#crc.cat-bits.15">15</A></TD><TD>1</TD><TD>&ndash;</TD><TD>1</TD><TD>&ndash;</TD><TD>2</TD></TR>
<TR ALIGN="RIGHT" VALIGN="TOP"><TD><A HREF="#crc.cat-bits.16">16</A></TD><TD>22</TD><TD>3</TD><TD>1</TD><TD>4</TD><TD>30</TD></TR>
<TR ALIGN="RIGHT" VALIGN="TOP"><TD><A HREF="#crc.cat-bits.17">17</A></TD><TD>&ndash;</TD><TD>&ndash;</TD><TD>1</TD><TD>&ndash;</TD><TD>1</TD></TR>
<TR ALIGN="RIGHT" VALIGN="TOP"><TD><A HREF="#crc.cat-bits.21">21</A></TD><TD>&ndash;</TD><TD>&ndash;</TD><TD>1</TD><TD>&ndash;</TD><TD>1</TD></TR>
<TR ALIGN="RIGHT" VALIGN="TOP"><TD><A HREF="#crc.cat-bits.24">24</A></TD><TD>5</TD><TD>&ndash;</TD><TD>3</TD><TD>&ndash;</TD><TD>8</TD></TR>
<TR ALIGN="RIGHT" VALIGN="TOP"><TD><A HREF="#crc.cat-bits.30">30</A></TD><TD>&ndash;</TD><TD>&ndash;</TD><TD>1</TD><TD>&ndash;</TD><TD>1</TD></TR>
<TR ALIGN="RIGHT" VALIGN="TOP"><TD><A HREF="#crc.cat-bits.31">31</A></TD><TD>&ndash;</TD><TD>1</TD><TD>&ndash;</TD><TD>&ndash;</TD><TD>1</TD></TR>
<TR ALIGN="RIGHT" VALIGN="TOP"><TD><A HREF="#crc.cat-bits.32">32</A></TD><TD>8</TD><TD>3</TD><TD>1</TD><TD>&ndash;</TD><TD>12</TD></TR>
<TR ALIGN="RIGHT" VALIGN="TOP"><TD><A HREF="#crc.cat-bits.40">40</A></TD><TD>&ndash;</TD><TD>&ndash;</TD><TD>1</TD><TD>&ndash;</TD><TD>1</TD></TR>
<TR ALIGN="RIGHT" VALIGN="TOP"><TD><A HREF="#crc.cat-bits.64">64</A></TD><TD>2</TD><TD>2</TD><TD>1</TD><TD>&ndash;</TD><TD>5</TD></TR>
<TR ALIGN="RIGHT" VALIGN="TOP"><TD><A HREF="#crc.cat-bits.82">82</A></TD><TD>1</TD><TD>&ndash;</TD><TD>&ndash;</TD><TD>&ndash;</TD><TD>1</TD></TR>
<TR ALIGN="RIGHT" VALIGN="TOP"><TH>Total</TH><TD>58</TD><TD>9</TD><TD>37</TD><TD>6</TD><TD>110</TD></TR>
</TBODY>
</TABLE>

<H2><A NAME="crc.legend">Legend</A></H2>
<H3><A NAME="crc.legend.evidence">Evidence classes</A></H3>
<DL>
<DT><STRONG>I</STRONG></DT>
<DD><DFN>Primary documents</DFN>.  Evidence from a standards document (official or <DFN>de facto</DFN>) defining a protocol that uses the CRC algorithm.</DD>
<DT><STRONG>II</STRONG></DT>
<DD><DFN>Implementations</DFN>.  A widely-available implementation that can calculate CRCs for any desired message.</DD>
<DT><STRONG>III</STRONG></DT>
<DD><DFN>Secondary documents</DFN>.  Evidence from documents other than standards documents.</DD>
<DT><STRONG>IV</STRONG></DT>
<DD><DFN>Codewords</DFN>.  Valid message-CRC pairs from any source.  <DFN>Trivial codewords</DFN> are simple sums of the algorithm parameters and/or simple multiples of the generator polynomial, and show insufficient calculation complexity to validate an algorithm.  These are collected in the Catalogue only for illustration.</DD>
</DL>

<H3><A NAME="crc.legend.model">Model classes</A></H3>
<DL>
<DT CLASS="attested"><DFN>Attested</DFN></DT>
<DD>The algorithm is evidenced by its definition in a primary document, plus one or more of the following:
<UL>
<LI>A worked example in a primary document</LI>
<LI>A widely-available implementation that can calculate CRCs for any desired message</LI>
<LI>Two or more published non-trivial codewords</LI>
<LI>An almost identical <DFN>attested</DFN> algorithm definition in the same primary document (notwithstanding this clause), plus one non-trivial codeword published anywhere.</LI>
</UL>
</DD>
<DT CLASS="confirmed"><DFN>Confirmed</DFN></DT>
<DD>The algorithm is evidenced by a widely-available implementation that can calculate CRCs for any desired message.</DD>
<DT CLASS="academic"><DFN>Academic</DFN></DT>
<DD>It has not been confirmed that CRCs are actually calculated in the field according to this record.</DD>
<DT CLASS="third-party"><DFN>Third-party</DFN></DT>
<DD>All parameters and codewords originate from unofficial sources.</DD>
</DL>

<H3><A NAME="crc.legend.params">Model parameters</A></H3>
<DL>
<DT><CODE>width</CODE></DT>
<DD>The number of bit cells in the linear feedback shift register; the degree of the generator polynomial, less one.</DD>
<DT><CODE>poly</CODE></DT>
<DD>The generator polynomial that sets the feedback tap positions of the shift register.  <CODE>poly</CODE> is written in the hexadecimal, direct notation found in MSB-first code.  The least significant bit corresponds to the inward end of the shift register, and is always set.  The highest-order term is omitted.</DD>
<DT><CODE>init</CODE></DT>
<DD>The settings of the bit cells at the start of each calculation, before reading the first message bit.  <CODE>init</CODE> is written in the hexadecimal, direct notation found in MSB-first code.  The least significant bit corresponds to the inward end of the shift register.</DD>
<DT><CODE>refin</CODE></DT>
<DD>If equal to <CODE>false</CODE>, specifies that the characters of the message are read bit-by-bit, most significant bit (MSB) first; if equal to <CODE>true</CODE>, the characters are read bit-by-bit, least significant bit (LSB) first.  Each sampled message bit is then XORed with the bit being simultaneously shifted out of the register at the most significant end, and the result is passed to the feedback taps.</DD>
<DT><CODE>refout</CODE></DT>
<DD>If equal to <CODE>false</CODE>, specifies that the contents of the register after reading the last message bit are unreflected before presentation; if equal to <CODE>true</CODE>, it specifies that they are reflected, character-by-character, before presentation.  For the purpose of this definition, the reflection is performed by swapping the content of each cell with that of the cell an equal distance from the opposite end of the register; the characters of the CRC are then true images of parts of the reflected register, the character containing the original MSB always appearing first.</DD>
<DT><CODE>xorout</CODE></DT>
<DD>The XOR value applied to the contents of the register after the last message bit has been read and after the optional reflection.  <CODE>xorout</CODE> is written in hexadecimal notation, having the same endianness as the CRC such that its true image appears in the characters of the CRC.</DD>
<DT><CODE>check</CODE></DT>
<DD>The contents of the register after initialising, reading the UTF-8 string <CODE>"123456789"</CODE> (as 8-bit characters), optionally reflecting, and applying the final XOR.</DD>
<DT><CODE>residue</CODE></DT>
<DD>The contents of the register after initialising, reading an error-free codeword and optionally reflecting the register (if <CODE>refout=true</CODE>), but not applying the final XOR.  This is mathematically equivalent to initialising the register with the <CODE>xorout</CODE> parameter, reflecting it as described (if <CODE>refout=true</CODE>), reading as many zero bits as there are cells in the register, and reflecting the result (if <CODE>refin=true</CODE>).  The residue of a crossed-endian model is calculated assuming that the characters of the received CRC are specially reflected before submitting the codeword.</DD>
<DT><CODE>name</CODE></DT>
<DD>The name assigned to the model in this Catalogue.</DD>
</DL>

<H3><A NAME="crc.legend.notes">Model notes</A></H3>
<DL>
<DT><DFN>Unique effective solution of codeword set</DFN></DT>
<DD>This model is the only one at the specified width that solves all the codewords listed in the model entry.  Equivalent forms of the model may exist (differing in Init, XorOut and Residue values) but they produce identical CRCs at all message lengths.  (If (<VAR>x</VAR> + 1)<SUP><VAR>n</VAR></SUP> appears in the factorisation of <VAR>G</VAR>(<VAR>x</VAR>), then there shall be 2<SUP><VAR>n</VAR></SUP> &minus; 1 equivalent forms.)</DD>
</DL>

<H2><A NAME="crc.refs">References</A></H2>

<P>Robert Bosch GmbH (September 1991), CAN 2.0 Specification.</P>
<UL>
<LI><A HREF="http://can.marathon.ru/files/can2spec.pdf">http://can.marathon.ru/files/can2spec.pdf</A></LI>
</UL>

<P>Dipl. Inf. Johann N. L&ouml;fflmann (30 July 2006), <CITE>Jacksum</CITE>.  CRC and hash calculator in Java.</P>
<UL>
<LI><A HREF="https://jacksum.loefflmann.net/en/index.html">https://jacksum.loefflmann.net/en/index.html</A></LI>
</UL>

<P>Thomas Pircher (6 February 2019), <CITE>pycrc</CITE>.  Python based parametrised CRC calculator and C code generator.</P>
<UL>
<LI><A HREF="https://pycrc.org/">https://pycrc.org/</A></LI>
</UL>

<P>William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling (1992), <CITE>Numerical recipes in C: The art of scientific computing</CITE>.  2nd ed.  Cambridge: Cambridge University Press.  ISBN 0-521-43108-5</P>
<!-- http://apps.nrbook.com/c/index.html -->

<P>Dr Ross N. Williams (19 August 1993), "A Painless Guide to CRC Error Detection Algorithms" (courtesy of the Internet Archive).</P>
<UL>
<LI><A HREF="https://web.archive.org/web/20190527220400/http://www.ross.net/crc/download/crc_v3.txt">https://web.archive.org/web/20190527220400/http://www.ross.net/crc/download/crc_v3.txt</A></LI>
<LI><A HREF="https://web.archive.org/web/20190523182111/http://www.wolfgang-ehrhardt.de/crc_v3.html">https://web.archive.org/web/20190523182111/http://www.wolfgang-ehrhardt.de/crc_v3.html</A></LI>
</UL>

<H2><A NAME="crc.links">Useful links</A></H2>

<P>Lammert Bies (August 2011), "On-line CRC calculation and free library".</P>
<UL>
<LI><A HREF="https://www.lammertbies.nl/comm/info/crc-calculation">https://www.lammertbies.nl/comm/info/crc-calculation</A></LI>
</UL>

<P>Lammert Bies, "Error detection and correction" Web forum (courtesy of the Internet Archive).</P>
<UL>
<LI><A HREF="https://web.archive.org/web/20170702024257/https://www.lammertbies.nl/forum/viewforum.php?f=11">https://web.archive.org/web/20170702024257/https://www.lammertbies.nl/forum/viewforum.php?f=11</A></LI>
</UL>

<P>Jonathan Graham Harston (21&ndash;23 June 2011), "Source Code for Calculating CRCs".</P>
<UL>
<LI><A HREF="http://mdfs.net/Info/Comp/Comms/CRCs.htm">http://mdfs.net/Info/Comp/Comms/CRCs.htm</A></LI>
<LI><A HREF="http://mdfs.net/Info/Comp/Comms/CRC16.htm">http://mdfs.net/Info/Comp/Comms/CRC16.htm</A></LI>
<LI><A HREF="http://mdfs.net/Info/Comp/Comms/CRC32.htm">http://mdfs.net/Info/Comp/Comms/CRC32.htm</A></LI>
</UL>

<P>PicList MassMind, "Cyclic Redundancy Check error detection".</P>
<UL>
<LI><A HREF="http://www.piclist.com/techref/method/error/crc.htm">http://www.piclist.com/techref/method/error/crc.htm</A></LI>
</UL>

<P>Sven Reifegerste (30 October 2006), Parametrised online CRC calculator.</P>
<UL>
<LI><A HREF="http://www.zorc.breitbandkatze.de/crc.html">http://www.zorc.breitbandkatze.de/crc.html</A></LI>
</UL>

<P>Tom Torfs, IOCCC winning entry, 1998, CRC generator.</P>
<UL>
<LI><A HREF="https://www.ioccc.org/years.html#1998_tomtorfs">https://www.ioccc.org/years.html#1998_tomtorfs</A></LI>
</UL>

<H2><A NAME="disclaimer">Disclaimer</A></H2>

<P>Every effort has been made to ensure accuracy, however there may be
occasional errors or omissions.  All trademarks and registered trademarks
are the intellectual property of their respective owners.  The code and
documentation included in this document are supplied without warranty,
not even the implied warranties of merchantability or fitness for a
particular purpose.  In no event shall the author or his suppliers be
liable for any loss, damage, injury or death, of any nature and
howsoever caused, arising from the use of, or failure, inability or
unwillingness to use, this software or documentation.</P>

<P CLASS="centred">[ <A HREF="#_top">Top of page</A> ]</P>

<HR>

<H2><A NAME="appendix.a">Appendix A</A></H2>

<P>Map of common 16-bit CRC algorithms.</P>

<TABLE CLASS="border">
<CAPTION>Karnaugh map of the most common 16-bit CRCs, with <VAR>Check</VAR> values and algorithm citations.  All values are hexadecimal.</CAPTION>
<TBODY>
<TR ALIGN="CENTER" VALIGN="BOTTOM">
<TH ROWSPAN="2" STYLE="border:2px solid;">"123456789"<br>(UTF-8)</TH>
<TH ALIGN="RIGHT">Polynomial</TH>
<TH COLSPAN="2">1021</TH>
<TH COLSPAN="2">8005</TH>
</TR>
<TR ALIGN="CENTER" VALIGN="BOTTOM" STYLE="border-bottom:2px solid;">
<TH ALIGN="RIGHT">Reflected?</TH>
<TH>False</TH>
<TH COLSPAN="2">True</TH>
<TH>False</TH>
</TR>
<TR ALIGN="CENTER" VALIGN="BOTTOM">
<TH>Initial value</TH>
<TH>Final XOR</TH>
<TH COLSPAN="4"></TH>
</TR>
<TR ALIGN="RIGHT" VALIGN="TOP">
<TH ROWSPAN="2">0000</TH>
<TH>0000</TH>
<TD>31C3<BR>(<CITE><A HREF="#crc.cat.crc-16-xmodem">XMODEM</A></CITE>)</TD>
<TD>2189<BR>(<CITE><A HREF="#crc.cat.crc-16-kermit">KERMIT</A></CITE>)</TD>
<TD>BB3D<BR>(<CITE><A HREF="#crc.cat.crc-16-arc">ARC</A></CITE>)</TD>
<TD>FEE8<BR>(<CITE><A HREF="#crc.cat.crc-16-umts">UMTS</A></CITE>)</TD>
</TR>
<TR ALIGN="RIGHT" VALIGN="TOP">
<TH ROWSPAN="2">FFFF</TH>
<TD>CE3C<BR>(<CITE><A HREF="#crc.cat.crc-16-gsm">GSM</A></CITE>)</TD>
<TD>DE76<BR>(&ndash;)</TD>
<TD>44C2<BR>(<CITE><A HREF="#crc.cat.crc-16-maxim-dow">MAXIM</A></CITE>)</TD>
<TD>0117<BR>(&ndash;)</TD>
</TR>
<TR ALIGN="RIGHT" VALIGN="TOP">
<TH ROWSPAN="2">FFFF</TH>
<TD>D64E<BR>(<CITE><A HREF="#crc.cat.crc-16-genibus">GENIBUS</A></CITE>)</TD>
<TD>906E<BR>(<CITE><A HREF="#crc.cat.crc-16-ibm-sdlc">SDLC</A></CITE>)</TD>
<TD>B4C8<BR>(<CITE><A HREF="#crc.cat.crc-16-usb">USB</A></CITE>)</TD>
<TD>5118<BR>(&ndash;)</TD>
</TR>
<TR ALIGN="RIGHT" VALIGN="TOP">
<TH>0000</TH>
<TD>29B1<BR>(<CITE><A HREF="#crc.cat.crc-16-ibm-3740">IBM 3740</A></CITE>)</TD>
<TD>6F91<BR>(<CITE><A HREF="#crc.cat.crc-16-mcrf4xx">MCRF4XX</A></CITE>)</TD>
<TD>4B37<BR>(<CITE><A HREF="#crc.cat.crc-16-modbus">MODBUS</A></CITE>)</TD>
<TD>AEE7<BR>(<CITE><A HREF="#crc.cat.crc-16-cms">CMS</A></CITE>)</TD>
</TR>
</TBODY>
</TABLE>

<H2><A NAME="appendix.b">Appendix B</A></H2>

<P>Cross-reference of generator polynomials to Professor Koopman's <CITE>CRC Polynomial Zoo</CITE>.</P>

<TABLE CLASS="border">
<CAPTION>Generator polynomials appearing in the CRC Catalogue</CAPTION>
<TBODY>
<TR ALIGN="CENTER" VALIGN="BOTTOM">
<TH ROWSPAN="2">Width</TH>
<TH COLSPAN="3">Polynomial</TH>
<TH ROWSPAN="2"><CITE>Zoo</CITE> names</TH>
<TH ROWSPAN="2">Models</TH>
</TR>
<TR ALIGN="CENTER" VALIGN="BOTTOM">
<TH>Direct</TH>
<TH>Reflected</TH>
<TH>Koopman</TH>
</TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc3.html">3</A></TD><TD ALIGN="RIGHT"><CODE>0x3</CODE></TD><TD ALIGN="RIGHT"><CODE>0x6</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c03/0x5_len.txt"><CODE>0x5</CODE></A></TD><TD>(*p) CRC-3K; RFC 3095; FP-3</TD><TD><A HREF="#crc.cat.crc-3-gsm"><CODE>CRC-3/GSM</CODE></A>, <A HREF="#crc.cat.crc-3-rohc"><CODE>CRC-3/ROHC</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc4.html">4</A></TD><TD ALIGN="RIGHT"><CODE>0x3</CODE></TD><TD ALIGN="RIGHT"><CODE>0xc</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c04/0x9_len.txt"><CODE>0x9</CODE></A></TD><TD>(*p) CCITT-4; FP-4; ITU-T G.704</TD><TD><A HREF="#crc.cat.crc-4-g-704"><CODE>CRC-4/G-704</CODE></A>, <A HREF="#crc.cat.crc-4-interlaken"><CODE>CRC-4/INTERLAKEN</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc5.html">5</A></TD><TD ALIGN="RIGHT"><CODE>0x05</CODE></TD><TD ALIGN="RIGHT"><CODE>0x14</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c05/0x12_len.txt"><CODE>0x12</CODE></A></TD><TD>(*p) CRC-5-EPC; CRC-5-USB; FP-5</TD><TD><A HREF="#crc.cat.crc-5-usb"><CODE>CRC-5/USB</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc5.html">5</A></TD><TD ALIGN="RIGHT"><CODE>0x09</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c05/0x12_len.txt"><CODE>0x12</CODE></A></TD><TD ALIGN="RIGHT">*&lt; <CODE>0x14</CODE></TD><TD>(*p) CRC-5-EPC; CRC-5-USB; FP-5</TD><TD><A HREF="#crc.cat.crc-5-epc-c1g2"><CODE>CRC-5/EPC-C1G2</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc5.html">5</A></TD><TD ALIGN="RIGHT"><CODE>0x15</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c05/0x15_len.txt"><CODE>0x15</CODE></A></TD><TD ALIGN="RIGHT">*&lt; <CODE>0x1a</CODE></TD><TD>(*op) CRC-5; CRC-5-ITU; CRC-5F/4; FOP-5 ("65")</TD><TD><A HREF="#crc.cat.crc-5-g-704"><CODE>CRC-5/G-704</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc6.html">6</A></TD><TD ALIGN="RIGHT"><CODE>0x03</CODE></TD><TD ALIGN="RIGHT"><CODE>0x30</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c06/0x21_len.txt"><CODE>0x21</CODE></A></TD><TD>(*p) CRC-6; CRC-6-ITU; FP-6</TD><TD><A HREF="#crc.cat.crc-6-g-704"><CODE>CRC-6/G-704</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc6.html">6</A></TD><TD ALIGN="RIGHT"><CODE>0x07</CODE></TD><TD ALIGN="RIGHT"><CODE>0x38</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c06/0x23_len.txt"><CODE>0x23</CODE></A></TD><TD>(*op) CRC-6-CDMA2000-B; FOP-6</TD><TD><A HREF="#crc.cat.crc-6-cdma2000-b"><CODE>CRC-6/CDMA2000-B</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc6.html">6</A></TD><TD ALIGN="RIGHT"><CODE>0x19</CODE></TD><TD ALIGN="RIGHT"><CODE>0x26</CODE></TD><TD ALIGN="RIGHT">&lt; <A HREF="https://users.ece.cmu.edu/~koopman/crc/c06/0x2c_len.txt"><CODE>0x2c</CODE></A></TD><TD>(*op) DARC-6</TD><TD><A HREF="#crc.cat.crc-6-darc"><CODE>CRC-6/DARC</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc6.html">6</A></TD><TD ALIGN="RIGHT"><CODE>0x27</CODE></TD><TD ALIGN="RIGHT"><CODE>0x39</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c06/0x33_len.txt"><CODE>0x33</CODE></A></TD><TD>(*p) CRC-6-CDMA2000-A; CRC-6F/3 ("147p")</TD><TD><A HREF="#crc.cat.crc-6-cdma2000-a"><CODE>CRC-6/CDMA2000-A</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc6.html">6</A></TD><TD ALIGN="RIGHT"><CODE>0x2f</CODE></TD><TD ALIGN="RIGHT"><CODE>0x3d</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c06/0x37_len.txt"><CODE>0x37</CODE></A></TD><TD>(*op) CRC-6-GSM; CRC-6F/4 ("157")</TD><TD><A HREF="#crc.cat.crc-6-gsm"><CODE>CRC-6/GSM</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc7.html">7</A></TD><TD ALIGN="RIGHT"><CODE>0x09</CODE></TD><TD ALIGN="RIGHT"><CODE>0x48</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c07/0x44_len.txt"><CODE>0x44</CODE></A></TD><TD>(*p) CRC-7</TD><TD><A HREF="#crc.cat.crc-7-mmc"><CODE>CRC-7/MMC</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc7.html">7</A></TD><TD ALIGN="RIGHT"><CODE>0x45</CODE></TD><TD ALIGN="RIGHT"><CODE>0x51</CODE></TD><TD ALIGN="RIGHT">&lt; <A HREF="https://users.ece.cmu.edu/~koopman/crc/c07/0x62_len.txt"><CODE>0x62</CODE></A></TD><TD>(*op) CRC-7P</TD><TD><A HREF="#crc.cat.crc-7-umts"><CODE>CRC-7/UMTS</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc7.html">7</A></TD><TD ALIGN="RIGHT"><CODE>0x4f</CODE></TD><TD ALIGN="RIGHT"><CODE>0x79</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c07/0x67_len.txt"><CODE>0x67</CODE></A></TD><TD>(*o) RFC 3095</TD><TD><A HREF="#crc.cat.crc-7-rohc"><CODE>CRC-7/ROHC</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc8.html">8</A></TD><TD ALIGN="RIGHT"><CODE>0x07</CODE></TD><TD ALIGN="RIGHT"><CODE>0xe0</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c08/0x83_len.txt"><CODE>0x83</CODE></A></TD><TD>(*op) FOP-8; ATM-8; CRC-8P</TD><TD><A HREF="#crc.cat.crc-8-i-432-1"><CODE>CRC-8/I-432-1</CODE></A>, <A HREF="#crc.cat.crc-8-rohc"><CODE>CRC-8/ROHC</CODE></A>, <A HREF="#crc.cat.crc-8-smbus"><CODE>CRC-8/SMBUS</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc8.html">8</A></TD><TD ALIGN="RIGHT"><CODE>0x31</CODE></TD><TD ALIGN="RIGHT"><CODE>0x8c</CODE></TD><TD ALIGN="RIGHT">&lt; <A HREF="https://users.ece.cmu.edu/~koopman/crc/c08/0x98_len.txt"><CODE>0x98</CODE></A></TD><TD>(*op) DOWCRC</TD><TD><A HREF="#crc.cat.crc-8-maxim-dow"><CODE>CRC-8/MAXIM-DOW</CODE></A>, <A HREF="#crc.cat.crc-8-nrsc-5"><CODE>CRC-8/NRSC-5</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc8.html">8</A></TD><TD ALIGN="RIGHT"><CODE>0x1d</CODE></TD><TD ALIGN="RIGHT"><CODE>0xb8</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c08/0x8e_len.txt"><CODE>0x8e</CODE></A></TD><TD>(*p) SAE J-1850; FP-8</TD><TD><A HREF="#crc.cat.crc-8-gsm-a"><CODE>CRC-8/GSM-A</CODE></A>, <A HREF="#crc.cat.crc-8-hitag"><CODE>CRC-8/HITAG</CODE></A>, <A HREF="#crc.cat.crc-8-i-code"><CODE>CRC-8/I-CODE</CODE></A>, <A HREF="#crc.cat.crc-8-mifare-mad"><CODE>CRC-8/MIFARE-MAD</CODE></A>, <A HREF="#crc.cat.crc-8-sae-j1850"><CODE>CRC-8/SAE-J1850</CODE></A>, <A HREF="#crc.cat.crc-8-tech-3250"><CODE>CRC-8/TECH-3250</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc8.html">8</A></TD><TD ALIGN="RIGHT"><CODE>0x49</CODE></TD><TD ALIGN="RIGHT"><CODE>0x92</CODE></TD><TD ALIGN="RIGHT">&lt; <A HREF="https://users.ece.cmu.edu/~koopman/crc/c08/0xa4_len.txt"><CODE>0xa4</CODE></A></TD><TD>(*o) CRC-8-GSM-B</TD><TD><A HREF="#crc.cat.crc-8-gsm-b"><CODE>CRC-8/GSM-B</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc8.html">8</A></TD><TD ALIGN="RIGHT"><CODE>0x2f</CODE></TD><TD ALIGN="RIGHT"><CODE>0xf4</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c08/0x97_len.txt"><CODE>0x97</CODE></A></TD><TD>(*op) C2; CRC-8-AUTOSAR; CRC-8F/4.2 ("457")</TD><TD><A HREF="#crc.cat.crc-8-autosar"><CODE>CRC-8/AUTOSAR</CODE></A>, <A HREF="#crc.cat.crc-8-opensafety"><CODE>CRC-8/OPENSAFETY</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc8.html">8</A></TD><TD ALIGN="RIGHT"><CODE>0x39</CODE></TD><TD ALIGN="RIGHT"><CODE>0x9c</CODE></TD><TD ALIGN="RIGHT">= <A HREF="https://users.ece.cmu.edu/~koopman/crc/c08/0x9c_len.txt"><CODE>0x9c</CODE></A></TD><TD>DARC-8</TD><TD><A HREF="#crc.cat.crc-8-darc"><CODE>CRC-8/DARC</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc8.html">8</A></TD><TD ALIGN="RIGHT"><CODE>0xd5</CODE></TD><TD ALIGN="RIGHT"><CODE>0xab</CODE></TD><TD ALIGN="RIGHT">&lt; <A HREF="https://users.ece.cmu.edu/~koopman/crc/c08/0xea_len.txt"><CODE>0xea</CODE></A></TD><TD>(*o) CRC-8</TD><TD><A HREF="#crc.cat.crc-8-dvb-s2"><CODE>CRC-8/DVB-S2</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc8.html">8</A></TD><TD ALIGN="RIGHT"><CODE>0x9b</CODE></TD><TD ALIGN="RIGHT"><CODE>0xd9</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c08/0xcd_len.txt"><CODE>0xcd</CODE></A></TD><TD>(*op) WCDMA-8</TD><TD><A HREF="#crc.cat.crc-8-cdma2000"><CODE>CRC-8/CDMA2000</CODE></A>, <A HREF="#crc.cat.crc-8-lte"><CODE>CRC-8/LTE</CODE></A>, <A HREF="#crc.cat.crc-8-wcdma"><CODE>CRC-8/WCDMA</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc8.html">8</A></TD><TD ALIGN="RIGHT"><CODE>0xa7</CODE></TD><TD ALIGN="RIGHT"><CODE>0xe5</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c08/0xd3_len.txt"><CODE>0xd3</CODE></A></TD><TD>(*op) CRC-8-Bluetooth</TD><TD><A HREF="#crc.cat.crc-8-bluetooth"><CODE>CRC-8/BLUETOOTH</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc10.html">10</A></TD><TD ALIGN="RIGHT"><CODE>0x3d9</CODE></TD><TD ALIGN="RIGHT"><CODE>0x26f</CODE></TD><TD ALIGN="RIGHT">&lt; <A HREF="https://users.ece.cmu.edu/~koopman/crc/c10/0x3ec_len.txt"><CODE>0x3ec</CODE></A></TD><TD>(*op) CRC-10-CMDA2000</TD><TD><A HREF="#crc.cat.crc-10-cdma2000"><CODE>CRC-10/CDMA2000</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc10.html">10</A></TD><TD ALIGN="RIGHT"><CODE>0x175</CODE></TD><TD ALIGN="RIGHT"><CODE>0x2ba</CODE></TD><TD ALIGN="RIGHT">= <A HREF="https://users.ece.cmu.edu/~koopman/crc/c10/0x2ba_len.txt"><CODE>0x2ba</CODE></A></TD><TD>CRC-10-GSM</TD><TD><A HREF="#crc.cat.crc-10-gsm"><CODE>CRC-10/GSM</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc10.html">10</A></TD><TD ALIGN="RIGHT"><CODE>0x233</CODE></TD><TD ALIGN="RIGHT"><CODE>0x331</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c10/0x319_len.txt"><CODE>0x319</CODE></A></TD><TD>(*op) CRC-10</TD><TD><A HREF="#crc.cat.crc-10-atm"><CODE>CRC-10/ATM</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc11.html">11</A></TD><TD ALIGN="RIGHT"><CODE>0x385</CODE></TD><TD ALIGN="RIGHT"><CODE>0x50e</CODE></TD><TD ALIGN="RIGHT">&lt; <A HREF="https://users.ece.cmu.edu/~koopman/crc/c11/0x5c2_len.txt"><CODE>0x5c2</CODE></A></TD><TD>(*o) FlexRay-11</TD><TD><A HREF="#crc.cat.crc-11-flexray"><CODE>CRC-11/FLEXRAY</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc11.html">11</A></TD><TD ALIGN="RIGHT"><CODE>0x307</CODE></TD><TD ALIGN="RIGHT"><CODE>0x706</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c11/0x583_len.txt"><CODE>0x583</CODE></A></TD><TD>(*op) CRC-11F/4.2 "7015"</TD><TD><A HREF="#crc.cat.crc-11-umts"><CODE>CRC-11/UMTS</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc12.html">12</A></TD><TD ALIGN="RIGHT"><CODE>0xd31</CODE></TD><TD ALIGN="RIGHT"><CODE>0x8cb</CODE></TD><TD ALIGN="RIGHT">&lt; <A HREF="https://users.ece.cmu.edu/~koopman/crc/c12/0xe98_len.txt"><CODE>0xe98</CODE></A></TD><TD>CRC-12-GSM</TD><TD><A HREF="#crc.cat.crc-12-gsm"><CODE>CRC-12/GSM</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc12.html">12</A></TD><TD ALIGN="RIGHT"><CODE>0x80f</CODE></TD><TD ALIGN="RIGHT"><CODE>0xf01</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c12/0xc07_len.txt"><CODE>0xc07</CODE></A></TD><TD>(*op) CRC-12</TD><TD><A HREF="#crc.cat.crc-12-dect"><CODE>CRC-12/DECT</CODE></A>, <A HREF="#crc.cat.crc-12-umts"><CODE>CRC-12/UMTS</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc12.html">12</A></TD><TD ALIGN="RIGHT"><CODE>0xf13</CODE></TD><TD ALIGN="RIGHT"><CODE>0xc8f</CODE></TD><TD ALIGN="RIGHT">&lt; <A HREF="https://users.ece.cmu.edu/~koopman/crc/c12/0xf89_len.txt"><CODE>0xf89</CODE></A></TD><TD>(*op) CRC-12-CMDA2000</TD><TD><A HREF="#crc.cat.crc-12-cdma2000"><CODE>CRC-12/CDMA2000</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc13.html">13</A></TD><TD ALIGN="RIGHT"><CODE>0x1cf5</CODE></TD><TD ALIGN="RIGHT"><CODE>0x15e7</CODE></TD><TD ALIGN="RIGHT">&lt; <A HREF="https://users.ece.cmu.edu/~koopman/crc/c13/0x1e7a_len.txt"><CODE>0x1e7a</CODE></A></TD><TD>(*o) CRC-13-BBC</TD><TD><A HREF="#crc.cat.crc-13-bbc"><CODE>CRC-13/BBC</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc14.html">14</A></TD><TD ALIGN="RIGHT"><CODE>0x0805</CODE></TD><TD ALIGN="RIGHT"><CODE>0x2804</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c14/0x2402_len.txt"><CODE>0x2402</CODE></A></TD><TD>(*op) DARC-14 (*op)</TD><TD><A HREF="#crc.cat.crc-14-darc"><CODE>CRC-14/DARC</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc14.html">14</A></TD><TD ALIGN="RIGHT"><CODE>0x202d</CODE></TD><TD ALIGN="RIGHT"><CODE>0x2d01</CODE></TD><TD ALIGN="RIGHT">&lt; <A HREF="https://users.ece.cmu.edu/~koopman/crc/c14/0x3016_len.txt"><CODE>0x3016</CODE></A></TD><TD>(*op) CRC-14-GSM</TD><TD><A HREF="#crc.cat.crc-14-gsm"><CODE>CRC-14/GSM</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc15.html">15</A></TD><TD ALIGN="RIGHT"><CODE>0x4599</CODE></TD><TD ALIGN="RIGHT"><CODE>0x4cd1</CODE></TD><TD ALIGN="RIGHT">&lt; <A HREF="https://users.ece.cmu.edu/~koopman/crc/c15/0x62cc_len.txt"><CODE>0x62cc</CODE></A></TD><TD>(*o) CAN</TD><TD><A HREF="#crc.cat.crc-15-can"><CODE>CRC-15/CAN</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc15.html">15</A></TD><TD ALIGN="RIGHT"><CODE>0x6815</CODE></TD><TD ALIGN="RIGHT"><CODE>0x540b</CODE></TD><TD ALIGN="RIGHT">&lt; <A HREF="https://users.ece.cmu.edu/~koopman/crc/c15/0x740a_len.txt"><CODE>0x740a</CODE></A></TD><TD>CRC-15-MPT1327</TD><TD><A HREF="#crc.cat.crc-15-mpt1327"><CODE>CRC-15/MPT1327</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc16.html">16</A></TD><TD ALIGN="RIGHT"><CODE>0x0589</CODE></TD><TD ALIGN="RIGHT"><CODE>0x91a0</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c16/0x82c4_len.txt"><CODE>0x82c4</CODE></A></TD><TD>(*o) CRC-16-DECT</TD><TD><A HREF="#crc.cat.crc-16-dect-r"><CODE>CRC-16/DECT-R</CODE></A>, <A HREF="#crc.cat.crc-16-dect-x"><CODE>CRC-16/DECT-X</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc16.html">16</A></TD><TD ALIGN="RIGHT"><CODE>0x080b</CODE></TD><TD ALIGN="RIGHT"><CODE>0xd010</CODE></TD><TD ALIGN="RIGHT"><CODE>0x8405</CODE></TD><TD>&ndash;</TD><TD><A HREF="#crc.cat.crc-16-nrsc-5"><CODE>CRC-16/NRSC-5</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc16.html">16</A></TD><TD ALIGN="RIGHT"><CODE>0x1021</CODE></TD><TD ALIGN="RIGHT"><CODE>0x8408</CODE></TD><TD ALIGN="RIGHT">&lt; <A HREF="https://users.ece.cmu.edu/~koopman/crc/c16/0x8810_len.txt"><CODE>0x8810</CODE></A></TD><TD>(*op) CCITT-16</TD><TD><A HREF="#crc.cat.crc-16-genibus"><CODE>CRC-16/GENIBUS</CODE></A>, <A HREF="#crc.cat.crc-16-gsm"><CODE>CRC-16/GSM</CODE></A>, <A HREF="#crc.cat.crc-16-ibm-3740"><CODE>CRC-16/IBM-3740</CODE></A>, <A HREF="#crc.cat.crc-16-ibm-sdlc"><CODE>CRC-16/IBM-SDLC</CODE></A>, <A HREF="#crc.cat.crc-16-iso-iec-14443-3-a"><CODE>CRC-16/ISO-IEC-14443-3-A</CODE></A>, <A HREF="#crc.cat.crc-16-kermit"><CODE>CRC-16/KERMIT</CODE></A>, <A HREF="#crc.cat.crc-16-mcrf4xx"><CODE>CRC-16/MCRF4XX</CODE></A>, <A HREF="#crc.cat.crc-16-riello"><CODE>CRC-16/RIELLO</CODE></A>, <A HREF="#crc.cat.crc-16-spi-fujitsu"><CODE>CRC-16/SPI-FUJITSU</CODE></A>, <A HREF="#crc.cat.crc-16-tms37157"><CODE>CRC-16/TMS37157</CODE></A>, <A HREF="#crc.cat.crc-16-xmodem"><CODE>CRC-16/XMODEM</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc16.html">16</A></TD><TD ALIGN="RIGHT"><CODE>0x1dcf</CODE></TD><TD ALIGN="RIGHT"><CODE>0xf3b8</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c16/0x8ee7_len.txt"><CODE>0x8ee7</CODE></A></TD><TD>ProfiBus</TD><TD><A HREF="#crc.cat.crc-16-profibus"><CODE>CRC-16/PROFIBUS</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc16.html">16</A></TD><TD ALIGN="RIGHT"><CODE>0x3d65</CODE></TD><TD ALIGN="RIGHT"><CODE>0xa6bc</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c16/0x9eb2_len.txt"><CODE>0x9eb2</CODE></A></TD><TD>(*o) C1; CRC-16-DNP; CRC-16F/6.2 ("236545")</TD><TD><A HREF="#crc.cat.crc-16-dnp"><CODE>CRC-16/DNP</CODE></A>, <A HREF="#crc.cat.crc-16-en-13757"><CODE>CRC-16/EN-13757</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc16.html">16</A></TD><TD ALIGN="RIGHT"><CODE>0x8005</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c16/0xa001_len.txt"><CODE>0xa001</CODE></A></TD><TD ALIGN="RIGHT">*&lt; <CODE>0xc002</CODE></TD><TD>(*op) CRC-16; CRC-16-IBM</TD><TD><A HREF="#crc.cat.crc-16-arc"><CODE>CRC-16/ARC</CODE></A>, <A HREF="#crc.cat.crc-16-cms"><CODE>CRC-16/CMS</CODE></A>, <A HREF="#crc.cat.crc-16-dds-110"><CODE>CRC-16/DDS-110</CODE></A>, <A HREF="#crc.cat.crc-16-maxim-dow"><CODE>CRC-16/MAXIM-DOW</CODE></A>, <A HREF="#crc.cat.crc-16-modbus"><CODE>CRC-16/MODBUS</CODE></A>, <A HREF="#crc.cat.crc-16-umts"><CODE>CRC-16/UMTS</CODE></A>, <A HREF="#crc.cat.crc-16-usb"><CODE>CRC-16/USB</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc16.html">16</A></TD><TD ALIGN="RIGHT"><CODE>0x5935</CODE></TD><TD ALIGN="RIGHT"><CODE>0xac9a</CODE></TD><TD ALIGN="RIGHT">= <A HREF="https://users.ece.cmu.edu/~koopman/crc/c16/0xac9a_len.txt"><CODE>0xac9a</CODE></A></TD><TD>C3; CRC-16F/5 ("254465s")</TD><TD><A HREF="#crc.cat.crc-16-opensafety-a"><CODE>CRC-16/OPENSAFETY-A</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc16.html">16</A></TD><TD ALIGN="RIGHT"><CODE>0x6f63</CODE></TD><TD ALIGN="RIGHT"><CODE>0xc6f6</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c16/0xb7b1_len.txt"><CODE>0xb7b1</CODE></A></TD><TD>IEEE WG77.1</TD><TD><A HREF="#crc.cat.crc-16-lj1200"><CODE>CRC-16/LJ1200</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc16.html">16</A></TD><TD ALIGN="RIGHT"><CODE>0x755b</CODE></TD><TD ALIGN="RIGHT"><CODE>0xdaae</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c16/0xbaad_len.txt"><CODE>0xbaad</CODE></A></TD><TD>CRC-16K/4</TD><TD><A HREF="#crc.cat.crc-16-opensafety-b"><CODE>CRC-16/OPENSAFETY-B</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc16.html">16</A></TD><TD ALIGN="RIGHT"><CODE>0x8bb7</CODE></TD><TD ALIGN="RIGHT"><CODE>0xedd1</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c16/0xc5db_len.txt"><CODE>0xc5db</CODE></A></TD><TD>(*p) CRC-16-T10-DIF</TD><TD><A HREF="#crc.cat.crc-16-t10-dif"><CODE>CRC-16/T10-DIF</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc16.html">16</A></TD><TD ALIGN="RIGHT"><CODE>0xa097</CODE></TD><TD ALIGN="RIGHT"><CODE>0xe905</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c16/0xd04b_len.txt"><CODE>0xd04b</CODE></A></TD><TD>(*o) IBM-16</TD><TD><A HREF="#crc.cat.crc-16-teledisk"><CODE>CRC-16/TELEDISK</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc16.html">16</A></TD><TD ALIGN="RIGHT"><CODE>0xc867</CODE></TD><TD ALIGN="RIGHT"><CODE>0xe613</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c16/0xe433_len.txt"><CODE>0xe433</CODE></A></TD><TD>(*p) CRC-16-CMDA2000</TD><TD><A HREF="#crc.cat.crc-16-cdma2000"><CODE>CRC-16/CDMA2000</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc17.html">17</A></TD><TD ALIGN="RIGHT"><CODE>0x1685b</CODE></TD><TD ALIGN="RIGHT"><CODE>0x1b42d</CODE></TD><TD ALIGN="RIGHT">= <A HREF="https://users.ece.cmu.edu/~koopman/crc/c17/0x1b42d_len.txt"><CODE>0x1b42d</CODE></A></TD><TD>(*o) CRC-17-CAN</TD><TD><A HREF="#crc.cat.crc-17-can-fd"><CODE>CRC-17/CAN-FD</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc21.html">21</A></TD><TD ALIGN="RIGHT"><CODE>0x102899</CODE></TD><TD ALIGN="RIGHT"><CODE>0x132281</CODE></TD><TD ALIGN="RIGHT">&lt; <A HREF="https://users.ece.cmu.edu/~koopman/crc/c21/0x18144c_len.txt"><CODE>0x18144c</CODE></A></TD><TD>(*o) CRC-21-CAN</TD><TD><A HREF="#crc.cat.crc-21-can-fd"><CODE>CRC-21/CAN-FD</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc24.html">24</A></TD><TD ALIGN="RIGHT"><CODE>0x00065b</CODE></TD><TD ALIGN="RIGHT"><CODE>0xda6000</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c24/0x80032d_len.txt"><CODE>0x80032d</CODE></A></TD><TD>(*op) BLE-24 (Bluetooth Low Energy)</TD><TD><A HREF="#crc.cat.crc-24-ble"><CODE>CRC-24/BLE</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc24.html">24</A></TD><TD ALIGN="RIGHT"><CODE>0x328b63</CODE></TD><TD ALIGN="RIGHT"><CODE>0xc6d14c</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c24/0x9945b1_len.txt"><CODE>0x9945b1</CODE></A></TD><TD>(*op) CRC-24/4</TD><TD><A HREF="#crc.cat.crc-24-interlaken"><CODE>CRC-24/INTERLAKEN</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc24.html">24</A></TD><TD ALIGN="RIGHT"><CODE>0x5d6dcb</CODE></TD><TD ALIGN="RIGHT"><CODE>0xd3b6ba</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c24/0xaeb6e5_len.txt"><CODE>0xaeb6e5</CODE></A></TD><TD>(*o) CRC-24; CRC-24/6.1; FlexRay-24</TD><TD><A HREF="#crc.cat.crc-24-flexray-a"><CODE>CRC-24/FLEXRAY-A</CODE></A>, <A HREF="#crc.cat.crc-24-flexray-b"><CODE>CRC-24/FLEXRAY-B</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc24.html">24</A></TD><TD ALIGN="RIGHT"><CODE>0x800063</CODE></TD><TD ALIGN="RIGHT"><CODE>0xc60001</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c24/0xc00031_len.txt"><CODE>0xc00031</CODE></A></TD><TD>(*op) WCDMA-24</TD><TD><A HREF="#crc.cat.crc-24-lte-b"><CODE>CRC-24/LTE-B</CODE></A>, <A HREF="#crc.cat.crc-24-os-9"><CODE>CRC-24/OS-9</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc24.html">24</A></TD><TD ALIGN="RIGHT"><CODE>0x864cfb</CODE></TD><TD ALIGN="RIGHT"><CODE>0xdf3261</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c24/0xc3267d_len.txt"><CODE>0xc3267d</CODE></A></TD><TD>(*op) CRC-24-Radix-64</TD><TD><A HREF="#crc.cat.crc-24-lte-a"><CODE>CRC-24/LTE-A</CODE></A>, <A HREF="#crc.cat.crc-24-openpgp"><CODE>CRC-24/OPENPGP</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc30.html">30</A></TD><TD ALIGN="RIGHT"><CODE>0x2030b9c7</CODE></TD><TD ALIGN="RIGHT"><CODE>0x38e74301</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c30/0x30185ce3_len.txt"><CODE>0x30185ce3</CODE></A></TD><TD>(*op) CRC-30</TD><TD><A HREF="#crc.cat.crc-30-cdma"><CODE>CRC-30/CDMA</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc31.html">31</A></TD><TD ALIGN="RIGHT"><CODE>0x04c11db7</CODE></TD><TD ALIGN="RIGHT"><CODE>0x76dc4190</CODE></TD><TD ALIGN="RIGHT"><CODE>0x42608edb</CODE></TD><TD>&ndash;</TD><TD><A HREF="#crc.cat.crc-31-philips"><CODE>CRC-31/PHILIPS</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc32.html">32</A></TD><TD ALIGN="RIGHT"><CODE>0x000000af</CODE></TD><TD ALIGN="RIGHT"><CODE>0xf5000000</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c32/0x80000057_len.txt"><CODE>0x80000057</CODE></A></TD><TD>(*p) FP-32, CRC-32K/3</TD><TD><A HREF="#crc.cat.crc-32-xfer"><CODE>CRC-32/XFER</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc32.html">32</A></TD><TD ALIGN="RIGHT"><CODE>0x04c11db7</CODE></TD><TD ALIGN="RIGHT"><CODE>0xedb88320</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c32/0x82608edb_len.txt"><CODE>0x82608edb</CODE></A></TD><TD>(*p) IEEE 802.3; CRC-32</TD><TD><A HREF="#crc.cat.crc-32-bzip2"><CODE>CRC-32/BZIP2</CODE></A>, <A HREF="#crc.cat.crc-32-cksum"><CODE>CRC-32/CKSUM</CODE></A>, <A HREF="#crc.cat.crc-32-iso-hdlc"><CODE>CRC-32/ISO-HDLC</CODE></A>, <A HREF="#crc.cat.crc-32-jamcrc"><CODE>CRC-32/JAMCRC</CODE></A>, <A HREF="#crc.cat.crc-32-mpeg-2"><CODE>CRC-32/MPEG-2</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc32.html">32</A></TD><TD ALIGN="RIGHT"><CODE>0x1edc6f41</CODE></TD><TD ALIGN="RIGHT"><CODE>0x82f63b78</CODE></TD><TD ALIGN="RIGHT">&lt; <A HREF="https://users.ece.cmu.edu/~koopman/crc/c32/0x8f6e37a0_len.txt"><CODE>0x8f6e37a0</CODE></A></TD><TD>(*op) iSCSI; CRC-32C; CRC-32/4</TD><TD><A HREF="#crc.cat.crc-32-iscsi"><CODE>CRC-32/ISCSI</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc32.html">32</A></TD><TD ALIGN="RIGHT"><CODE>0x741b8cd7</CODE></TD><TD ALIGN="RIGHT"><CODE>0xeb31d82e</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c32/0xba0dc66b_len.txt"><CODE>0xba0dc66b</CODE></A></TD><TD>(*o) CRC-32K/6.1</TD><TD><A HREF="#crc.cat.crc-32-mef"><CODE>CRC-32/MEF</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc32.html">32</A></TD><TD ALIGN="RIGHT"><CODE>0x8001801b</CODE></TD><TD ALIGN="RIGHT"><CODE>0xd8018001</CODE></TD><TD ALIGN="RIGHT"><CODE>0xc000c00d</CODE></TD><TD>&ndash;</TD><TD><A HREF="#crc.cat.crc-32-cd-rom-edc"><CODE>CRC-32/CD-ROM-EDC</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc32.html">32</A></TD><TD ALIGN="RIGHT"><CODE>0x814141ab</CODE></TD><TD ALIGN="RIGHT"><CODE>0xd5828281</CODE></TD><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/c32/0xc0a0a0d5_len.txt"><CODE>0xc0a0a0d5</CODE></A></TD><TD>(*op) CRC-32Q</TD><TD><A HREF="#crc.cat.crc-32-aixm"><CODE>CRC-32/AIXM</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc32.html">32</A></TD><TD ALIGN="RIGHT"><CODE>0xf4acfb13</CODE></TD><TD ALIGN="RIGHT"><CODE>0xc8df352f</CODE></TD><TD ALIGN="RIGHT">&lt; <A HREF="https://users.ece.cmu.edu/~koopman/crc/c32/0xfa567d89_len.txt"><CODE>0xfa567d89</CODE></A></TD><TD>(*o) CRC-32/6 corrected</TD><TD><A HREF="#crc.cat.crc-32-autosar"><CODE>CRC-32/AUTOSAR</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc32.html">32</A></TD><TD ALIGN="RIGHT"><CODE>0xa833982b</CODE></TD><TD ALIGN="RIGHT"><CODE>0xd419cc15</CODE></TD><TD ALIGN="RIGHT">= <A HREF="https://users.ece.cmu.edu/~koopman/crc/c32/0xd419cc15_len.txt"><CODE>0xd419cc15</CODE></A></TD><TD>CRC-32/5.1</TD><TD><A HREF="#crc.cat.crc-32-base91-d"><CODE>CRC-32/BASE91-D</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc40.html">40</A></TD><TD ALIGN="RIGHT"><CODE>0x0004820009</CODE></TD><TD ALIGN="RIGHT"><CODE>0x9000412000</CODE></TD><TD ALIGN="RIGHT"><CODE>0x8002410004</CODE></TD><TD>&ndash;</TD><TD><A HREF="#crc.cat.crc-40-gsm"><CODE>CRC-40/GSM</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc64.html">64</A></TD><TD ALIGN="RIGHT"><CODE>0x000000000000001b</CODE></TD><TD ALIGN="RIGHT"><CODE>0xd800000000000000</CODE></TD><TD ALIGN="RIGHT"><CODE>0x800000000000000d</CODE></TD><TD>(*p) FP-64, CRC-64-ISO</TD><TD><A HREF="#crc.cat.crc-64-go-iso"><CODE>CRC-64/GO-ISO</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc64.html">64</A></TD><TD ALIGN="RIGHT"><CODE>0x259c84cba6426349</CODE></TD><TD ALIGN="RIGHT"><CODE>0x92c64265d32139a4</CODE></TD><TD ALIGN="RIGHT">&lt; <CODE>0x92ce4265d32131a4</CODE></TD><TD>&ndash;</TD><TD><A HREF="#crc.cat.crc-64-ms"><CODE>CRC-64/MS</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT"><A HREF="https://users.ece.cmu.edu/~koopman/crc/crc64.html">64</A></TD><TD ALIGN="RIGHT"><CODE>0x42f0e1eba9ea3693</CODE></TD><TD ALIGN="RIGHT"><CODE>0xc96c5795d7870f42</CODE></TD><TD ALIGN="RIGHT"><CODE>0xa17870f5d4f51b49</CODE></TD><TD>(*o) CRC-64-ECMA</TD><TD><A HREF="#crc.cat.crc-64-ecma-182"><CODE>CRC-64/ECMA-182</CODE></A>, <A HREF="#crc.cat.crc-64-we"><CODE>CRC-64/WE</CODE></A>, <A HREF="#crc.cat.crc-64-xz"><CODE>CRC-64/XZ</CODE></A></TD></TR>
<TR ALIGN="LEFT" VALIGN="TOP"><TD ALIGN="RIGHT">82</TD><TD ALIGN="RIGHT"><CODE>0x0308c0111011401440411</CODE></TD><TD ALIGN="RIGHT"><CODE>0x220808a00a2022200c430</CODE></TD><TD ALIGN="RIGHT"><CODE>0x218460088808a00a20208</CODE></TD><TD>&ndash;</TD><TD><A HREF="#crc.cat.crc-82-darc"><CODE>CRC-82/DARC</CODE></A></TD></TR>
</TBODY>
</TABLE>

<P><STRONG>Legend:</STRONG> &lt; Lexically greater than its reciprocal in the <CITE>Reflected</CITE> column.  *&lt; Lexically greater than its reciprocal listed in the <CITE>Zoo</CITE> and in the <CITE>Reflected</CITE> column.  = Palindromic polynomial.  (*o) Multiple of (<VAR>x</VAR> + 1).  (*p) Primitive polynomial.  (*op) Product of a primitive polynomial and (<VAR>x</VAR> + 1).</P>

<HR>

<ADDRESS>Greg Cook, <IMG ALT="[email address]" STYLE="vertical-align: text-bottom;" SRC="../email.png" WIDTH="139" HEIGHT="13"><BR>
<A HREF="https://reveng.sourceforge.io/crc-catalogue/all.htm">https://reveng.sourceforge.io/crc-catalogue/all.htm</A> Last updated 11 January 2022<BR>
Links last verified 1 January 2021
</ADDRESS>

<P><A HREF="https://validator.w3.org/check?uri=https://reveng.sourceforge.io/crc-catalogue/all.htm"><IMG ALT="Valid HTML 4.01 Strict." TITLE="Valid HTML 4.01 Strict" SRC="../valid-html401.png" WIDTH="88" HEIGHT="31" STYLE="vertical-align: middle;"></A><SPAN STYLE="float: right;">&nbsp;Hosting by <A HREF="https://sourceforge.net/"><IMG ALT="SourceForge.net" TITLE="SourceForge.net" SRC="https://sourceforge.net/sflogo.php?group_id=781152&amp;type=2" WIDTH="125" HEIGHT="37" STYLE="vertical-align: middle;"></A></SPAN></P>

<P CLASS="centred">[ <A HREF="#_top">Top of page</A> ]</P>

</BODY>
</HTML>
